CN109412944A - 基于微服务的请求转发方法、装置和服务器 - Google Patents
基于微服务的请求转发方法、装置和服务器 Download PDFInfo
- Publication number
- CN109412944A CN109412944A CN201811204554.8A CN201811204554A CN109412944A CN 109412944 A CN109412944 A CN 109412944A CN 201811204554 A CN201811204554 A CN 201811204554A CN 109412944 A CN109412944 A CN 109412944A
- Authority
- CN
- China
- Prior art keywords
- micro services
- path
- several
- shortest
- normally connected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种基于微服务的请求转发方法、装置和服务器,所述的方法包括:若当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图;根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径;从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径;基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。本申请实施例在网络故障时无需人工干预即可正常执行网络请求,提高了效率。
Description
技术领域
本申请涉及微服务技术领域,具体而言,本申请涉及一种基于微服务的请求转发方法、装置和服务器。
背景技术
当前微服务越来越流行,各个微服务都是以单独的服务的形式运行,它们可能分布在多台机器的多个接口上,各个微服务彼此之间通过网络通讯来进行交互。在大量使用微服务的情况下,微服务与微服务之间的连通性成为了整个系统是否能够正常工作的重要指标。而实际情况下,尤其是云环境中,网络经常会发生局部或者大量的波动,另外跨机房的情况下,网络的连通性更成为请求能否成功执行的重要环节。但是目前在自身微服务与目标微服务之间的网络出现故障时,需要人工干预才能正常执行网络请求,效率较低。
发明内容
本申请针对现有方式的缺点,提出一种基于微服务的请求转发方法、装置和服务器,以在网络故障时无需人工干预即可正常执行网络请求,提高效率。
本申请的实施例根据第一个方面,提供了一种基于微服务的请求转发方法,包括:
若当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图;
根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径;
从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径;
基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。
在一个实施例中,所述从各个最短路径中确定出若干个正常连通的路径,包括:
构建各个最短路径的探测请求;所述探测请求包括最短路径中各个微服务之间的先后顺序,所述探测请求按照所述先后顺序进行转发;
根据各个最短路径的探测请求,确定各个最短路径中所述当前微服务的下一个微服务;
分别向各个最短路径中的下一个微服务发送对应的探测请求;
检测各个最短路径中的下一个微服务是否返回响应消息;所述响应消息为所述目标微服务根据接收到的探测请求生成的信息;
若是,确定对应的最短路径为正常连通的路径。
在一个实施例中,所述从若干个正常连通的路径中选取一个路径,包括:
从若干个正常连通的路径中选取最早返回响应消息的路径。
在一个实施例中,所述从若干个正常连通的路径中选取一个路径,包括:
从若干个正常连通的路径中选取路径的可用带宽最大的路径。
在一个实施例中,所述从若干个正常连通的路径中选取路径的可用带宽最大的路径,之前,还包括:
从若干个正常连通的路径中选取一个路径;
获取所述路径中各个微服务的可用带宽;
根据各个微服务的可用带宽,计算所述路径的可用带宽;
从若干个正常连通的路径中选取另一个路径,返回所述获取所述路径中各个微服务的可用带宽的步骤,直至若干个正常连通的路径中每个路径均被选取。
在一个实施例中,所述路径的可用带宽通过以下公式计算:
路径的可用带宽=(第1个微服务的可用带宽*1+第2个微服务的可用带宽*2+……第N个微服务的可用带宽*N)/(1+2+……N);N为所述路径中的微服务的总数目。
在一个实施例中,所述根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径,包括:
根据所述有向图,通过广度优先搜索算法获得所述当前微服务和所述目标微服务之间的若干个最短路径。
本申请的实施例根据第二个方面,还提供了一种基于微服务的请求转发装置,包括:
有向图获取模块,用于在当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图;
最短路径获得模块,用于根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径;
路径选取模块,用于从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径;
请求转发模块,用于基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。
本申请的实施例根据第三个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的基于微服务的请求转发方法。
本申请的实施例根据第四个方面,还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的基于微服务的请求转发方法。
上述的基于微服务的请求转发方法、装置和服务器,当前微服务向目标微服务发送原始请求失败时,先根据有向图确定出当前微服务和目标微服务之间的若干个最短路径,然后从若干个最短路径中选取一个正常连通的路径进行原始请求转发,从而使当前微服务与目标微服务在网络不通的情况下,不需要任何的人工干预,依然正确地执行远程接口的调用,正常执行网络请求,效率较高,并提高了整个系统的可用性。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一个实施例的基于微服务的请求转发方法的流程示意图;
图2为本申请一个实施例的基于微服务的请求转发装置的结构示意图;
图3为本申请一个实施例的服务器的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的服务器其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本申请的实施例中,远端网络设备、终端设备与服务器之间可通过任何通信方式实现通信,包括但不限于,移动通信、计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
如图1所示,在一个实施例中,一种基于微服务的请求转发方法,包括:
S110、若当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图。
一幅有向图由一组顶点和一组有方向的边组成,每条有方向的边都连接着有序的一对顶点,有向边是由第一个顶点指出并指向第二个顶点。构建用于描述微服务之间依赖关系的有向图,可选的,构建有向图的方法包括:获取系统中微服务与微服务之间的依赖关系数据,依赖关系数据指的是微服务与微服务之间的通讯关系数据,例如微服务A向微服务B发送数据等等;根据该依赖关系数据,将各个微服务抽象为各个节点,根据微服务之间的通讯关系构建有向边,形成有向图。
当前微服务通过原始路径向目标微服务转发原始请求不成功时,确定当前微服务和目标微服务之间的通讯出现故障,获取预先构建的有向图。
S120、根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径。
可选的,构建的有向图为无权有向图,因此最短路径指的是从起始节点到目的节点之间节点数最少的路径或者有向边最少的路径。根据构建的有向图,找到当前微服务的节点(起始节点)和目标微服务的节点(目的节点),确定起始节点和目的节点之间的若干个最短路径。
确定最短路径的方式有很多种,例如,在一个实施例中,所述根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径,包括:根据所述有向图,通过广度优先搜索算法获得所述当前微服务和所述目标微服务之间的若干个最短路径。广度优先算法,是一种图形搜索演算法,简单的说,广度优先算法是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。广度优先搜索的实现一般采用open-closed表。通过该广度优先搜索算法可以搜索出当前微服务和目标微服务之间的若干个最短路径。应当理解的是,本申请还可以采用其它算法获得若干个最短路径,本申请并不对此做出限定。
S130、从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径。
正常连通的路径指的是通过该路径能够成功发送请求的路径。在一个实施例中,所述从各个最短路径中确定出若干个正常连通的路径,包括:
S131、构建各个最短路径的探测请求;所述探测请求包括最短路径中各个微服务之间的先后顺序,所述探测请求按照所述先后顺序进行转发。
针对每一个最短路径,分别构建一个探测请求,将每一个最短路径上每个节点(即每个微服务)按照先后顺序分别保存在对应的探测请求中,后续按照探测请求中记录各个微服务的先后顺序依次对探测请求进行转发。
以一个最短路径为例,根据有向图可知该最短路径上的节点依次为节点A(对应微服务A)、节点B(对应微服务B)和节点C(对应微服务C),则构建的探测请求包括节点A、节点B和节点C,后续进行探测请求转发时按照微服务A、微服务B和微服务C的顺序进行转发,即微服务A将探测请求发送给微服务B,微服务B将探测请求转发给微服务C。
S132、根据各个最短路径的探测请求,确定各个最短路径中所述当前微服务的下一个微服务。
对于每一个最短路径,最短路径的探测请求中包含了该最短路径中各个微服务的先后顺序,因此根据探测请求,可以获得当前微服务的下一个微服务。假设探测请求中第一个微服务为当前微服务,则第二个微服务为当前微服务的下一个微服务。
S133、分别向各个最短路径中的下一个微服务发送对应的探测请求。
当前微服务分别向每一个最短路径中的下一个微服务发送各自的探测请求。例如,确定出的最短路径有三个,分别为最短路径A、最短路径B和最短路径C,最短路径A中的下一个微服务为微服务A,最短路径A的探测请求为探测请求A,最短路径B中的下一个微服务为微服务B,最短路径B的探测请求为探测请求B,最短路径C中的下一个微服务为微服务C,最短路径C的探测请求为探测请求C,则当前微服务同时向微服务A发送探测请求A,向微服务B发送探测请求B,向微服务C发送探测请求C。
S134、检测各个最短路径中的下一个微服务是否返回响应消息;所述响应消息为所述目标微服务根据接收到的探测请求生成的信息。
当前微服务的下一个微服务(简称第二个微服务)收到探测请求后,根据探测请求中的各个微服务之间的先后顺序,再确定第三个微服务,将探测请求再转发给第三个微服务,如果第二个微服务和第三个微服务之间的通路正常,则探测请求成功转发至第三个微服务,第三个微服务再根据探测请求确定第四个微服务并进行探测请求的转发,依次类推,如果探测请求未成功转发至第三个微服务,则通信结束。最终,若探测请求能被成功转发到目标微服务,则目标微服务根据接收的请求生成响应消息,并按照原路径返回该响应消息,因此当前微服务通过检测是否接收到返回的响应消息就可以判断出最短路径是否正常连通。为了后续识别是哪一个最短路径返回的响应消息,可选的,目标微服务可以针对不同的最短路径生成带有最短路径身份标识的响应消息。
S135、若是,确定对应的最短路径为正常连通的路径。
如果当前微服务接收到某一个最短路径中的下一个节点返回的响应消息,则确定该最短路径为正常连通的路径。如果当前微服务未接收到某一个最短路径中的下一个节点返回的响应消息,则确定该最短路径为通讯故障路径。
根据上述方法筛选出正常连通的路径后,就可以从正常连通的路径中选取一个路径进行原始请求的转发。路径选取的方法有很多种,下面结合两个实施例进行说明,应当理解的是,本申请并不限制于下述两种方式。
在一个实施例中,所述从若干个正常连通的路径中选取一个路径,包括:从若干个正常连通的路径中选取最早返回响应消息的路径。最早返回的即为能够连通并且延迟最低的路径,而后将原始请求通过这条路径进行转发,即可实现在网络局部不通的情况下正常执行网络请求。为了提高效率,可以无需先确定出若干个正常连通的路径,直接从若干个最短路径中检测最早返回响应消息的路径,通过该路径进行原始请求的转发。
在另一个实施例中,所述从若干个正常连通的路径中选取一个路径,包括:从若干个正常连通的路径中选取路径的可用带宽最大的路径。选取路径的可用带宽最大的路径,通过该路径进行原始请求的转发,可以提高原始请求转发的效率,保证通信的质量。
在一个实施例中,所述从若干个正常连通的路径中选取路径的可用带宽最大的路径,之前,还包括:
从若干个正常连通的路径中选取一个路径;
获取所述路径中各个微服务的可用带宽;
根据各个微服务的可用带宽,计算所述路径的可用带宽;
从若干个正常连通的路径中选取另一个路径,返回所述获取所述路径中各个微服务的可用带宽的步骤,直至若干个正常连通的路径中每个路径均被选取。
本实施例中,每一个微服务均可以根据现有技术中已有的方式获取自身的可用带宽,然后将自身的可用带宽发送给自身的上一个微服务,由当前微服务的下一个微服务统一将各个微服务的可用带宽发送给当前微服务。当前微服务根据每一个路径中各个微服务的可用带宽计算出路径的可用带宽。
在一个实施例中,所述路径的可用带宽通过以下公式计算:
路径的可用带宽=(第1个微服务的可用带宽*1+第2个微服务的可用带宽*2+……第N个微服务的可用带宽*N)/(1+2+……N);N为所述路径中的微服务的总数目。第1个微服务指的是路径中排在第1个的微服务,第2个微服务指的是路径中排在第2个的微服务,……,依次类推。
S140、基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。
选取好路径之后,当前微服务即可以通过选取好的路径将原始请求发送至目标微服务,从而使当前微服务与目标微服务在网络不通的情况下,不需要任何的人工干预,依然正确地执行远程接口的调用,效率较高,提高了整个系统的可用性,使得在网络故障的时候,有更多的缓冲时间让专业人士进行抢修。
基于同一发明构思,本申请还提供一种基于微服务的请求转发装置,下面结合附图对本申请装置的具体实施方式进行详细介绍。
如图2所示,在一个实施例中,一种基于微服务的请求转发装置,包括:
有向图获取模块210,用于在当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图;
最短路径获得模块220,用于根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径;
路径选取模块230,用于从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径;
请求转发模块240,用于基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。
在一个实施例中,路径选取模块230包括:
探测请求构建模块,用于构建各个最短路径的探测请求;所述探测请求包括最短路径中各个微服务之间的先后顺序,所述探测请求按照所述先后顺序进行转发;
微服务确定模块,用于根据各个最短路径的探测请求,确定各个最短路径中所述当前微服务的下一个微服务;
探测请求发送模块,用于分别向各个最短路径中的下一个微服务发送对应的探测请求;
检测模块,用于检测各个最短路径中的下一个微服务是否返回响应消息;所述响应消息为所述目标微服务根据接收到的探测请求生成的信息;
路径确定模块,用于在最短路径中的下一个微服务返回响应消息时,确定对应的最短路径为正常连通的路径。
在一个实施例中,路径选取模块230从若干个正常连通的路径中选取最早返回响应消息的路径。
在一个实施例中,路径选取模块230从若干个正常连通的路径中选取路径的可用带宽最大的路径。
在一个实施例中,路径选取模块230在从若干个正常连通的路径中选取路径的可用带宽最大的路径之前,还用于从若干个正常连通的路径中选取一个路径;获取所述路径中各个微服务的可用带宽;根据各个微服务的可用带宽,计算所述路径的可用带宽;从若干个正常连通的路径中选取另一个路径,返回执行所述获取所述路径中各个微服务的可用带宽的功能,直至若干个正常连通的路径中每个路径均被选取。
在一个实施例中,所述路径的可用带宽通过以下公式计算:
路径的可用带宽=(第1个微服务的可用带宽*1+第2个微服务的可用带宽*2+……第N个微服务的可用带宽*N)/(1+2+……N);N为所述路径中的微服务的总数目。
在一个实施例中,最短路径获得模块220根据所述有向图,通过广度优先搜索算法获得所述当前微服务和所述目标微服务之间的若干个最短路径。
上述基于微服务的请求转发装置的其它技术特征与上述基于微服务的请求转发方法的技术特征相同,在此不予赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的基于微服务的请求转发方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-OnlyMemory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyEraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
本申请实施例还提供一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的基于微服务的请求转发方法。
图3为本申请服务器的结构示意图,包括处理器320、存储装置330、输入单元340以及显示单元350等器件。本领域技术人员可以理解,图3示出的结构器件并不构成对所有服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置330可用于存储应用程序310以及各功能模块,处理器320运行存储在存储装置330的应用程序310,从而执行设备的各种功能应用以及数据处理。存储装置330可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储装置包括但不限于这些类型的存储装置。本申请所公开的存储装置330只作为例子而非作为限定。
输入单元340用于接收信号的输入,以及接收有向图等等。输入单元340可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元350可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元350可采用液晶显示器、有机发光二极管等形式。处理器320是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置330内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。
在一实施方式中,服务器包括一个或多个处理器320,以及一个或多个存储装置330,一个或多个应用程序310,其中所述一个或多个应用程序310被存储在存储装置330中并被配置为由所述一个或多个处理器320执行,所述一个或多个应用程序310配置用于执行以上实施例所述的基于微服务的请求转发方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解的是,在本申请各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种基于微服务的请求转发方法,其特征在于,包括:
若当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图;
根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径;
从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径;
基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。
2.根据权利要求1所述的基于微服务的请求转发方法,其特征在于,所述从各个最短路径中确定出若干个正常连通的路径,包括:
构建各个最短路径的探测请求;所述探测请求包括最短路径中各个微服务之间的先后顺序,所述探测请求按照所述先后顺序进行转发;
根据各个最短路径的探测请求,确定各个最短路径中所述当前微服务的下一个微服务;
分别向各个最短路径中的下一个微服务发送对应的探测请求;
检测各个最短路径中的下一个微服务是否返回响应消息;所述响应消息为所述目标微服务根据接收到的探测请求生成的信息;
若是,确定对应的最短路径为正常连通的路径。
3.根据权利要求2所述的基于微服务的请求转发方法,其特征在于,所述从若干个正常连通的路径中选取一个路径,包括:
从若干个正常连通的路径中选取最早返回响应消息的路径。
4.根据权利要求1所述的基于微服务的请求转发方法,其特征在于,所述从若干个正常连通的路径中选取一个路径,包括:
从若干个正常连通的路径中选取路径的可用带宽最大的路径。
5.根据权利要求4所述的基于微服务的请求转发方法,其特征在于,所述从若干个正常连通的路径中选取路径的可用带宽最大的路径,之前,还包括:
从若干个正常连通的路径中选取一个路径;
获取所述路径中各个微服务的可用带宽;
根据各个微服务的可用带宽,计算所述路径的可用带宽;
从若干个正常连通的路径中选取另一个路径,返回所述获取所述路径中各个微服务的可用带宽的步骤,直至若干个正常连通的路径中每个路径均被选取。
6.根据权利要求5所述的基于微服务的请求转发方法,其特征在于,所述路径的可用带宽通过以下公式计算:
路径的可用带宽=(第1个微服务的可用带宽*1+第2个微服务的可用带宽*2+……第N个微服务的可用带宽*N)/(1+2+……N);N为所述路径中的微服务的总数目。
7.根据权利要求1至6中任意一项所述的基于微服务的请求转发方法,其特征在于,所述根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径,包括:
根据所述有向图,通过广度优先搜索算法获得所述当前微服务和所述目标微服务之间的若干个最短路径。
8.一种基于微服务的请求转发装置,其特征在于,包括:
有向图获取模块,用于在当前微服务向目标微服务发送原始请求失败时,获取预先构建的用于描述微服务之间依赖关系的有向图;
最短路径获得模块,用于根据所述有向图,获得所述当前微服务和所述目标微服务之间的若干个最短路径;
路径选取模块,用于从各个最短路径中确定出若干个正常连通的路径,从若干个正常连通的路径中选取一个路径;
请求转发模块,用于基于选取的路径,将所述原始请求由所述当前微服务发送至所述目标微服务。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任意一项所述的基于微服务的请求转发方法。
10.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至7中任意一项所述的基于微服务的请求转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204554.8A CN109412944B (zh) | 2018-10-16 | 2018-10-16 | 基于微服务的请求转发方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204554.8A CN109412944B (zh) | 2018-10-16 | 2018-10-16 | 基于微服务的请求转发方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109412944A true CN109412944A (zh) | 2019-03-01 |
CN109412944B CN109412944B (zh) | 2023-05-12 |
Family
ID=65467294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811204554.8A Active CN109412944B (zh) | 2018-10-16 | 2018-10-16 | 基于微服务的请求转发方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109412944B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324470A (zh) * | 2020-01-20 | 2020-06-23 | 北京百度网讯科技有限公司 | 用于生成信息的方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170046146A1 (en) * | 2015-08-11 | 2017-02-16 | International Business Machines Corporation | Autonomously healing microservice-based applications |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107181675A (zh) * | 2017-06-20 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 服务调用方法及装置 |
US20180041515A1 (en) * | 2016-08-05 | 2018-02-08 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US20180089011A1 (en) * | 2016-09-28 | 2018-03-29 | Netflix, Inc. | Detecting service vulnerabilities in a distributed computing system |
US20180121221A1 (en) * | 2016-10-28 | 2018-05-03 | ShieldX Networks, Inc. | Systems and methods for deploying microservices in a networked microservices system |
CN108173911A (zh) * | 2017-12-18 | 2018-06-15 | 中国科学院声学研究所 | 一种微服务故障检测处理方法及装置 |
CN108279926A (zh) * | 2018-01-10 | 2018-07-13 | 浙江网新恒天软件有限公司 | 一种单体应用微服务化的方法 |
CN108418862A (zh) * | 2018-01-31 | 2018-08-17 | 金蝶软件(中国)有限公司 | 基于人工智能服务云平台的微服务管理方法和系统 |
-
2018
- 2018-10-16 CN CN201811204554.8A patent/CN109412944B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170046146A1 (en) * | 2015-08-11 | 2017-02-16 | International Business Machines Corporation | Autonomously healing microservice-based applications |
US20180041515A1 (en) * | 2016-08-05 | 2018-02-08 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US20180089011A1 (en) * | 2016-09-28 | 2018-03-29 | Netflix, Inc. | Detecting service vulnerabilities in a distributed computing system |
US20180121221A1 (en) * | 2016-10-28 | 2018-05-03 | ShieldX Networks, Inc. | Systems and methods for deploying microservices in a networked microservices system |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107181675A (zh) * | 2017-06-20 | 2017-09-19 | 北京奇艺世纪科技有限公司 | 服务调用方法及装置 |
CN108173911A (zh) * | 2017-12-18 | 2018-06-15 | 中国科学院声学研究所 | 一种微服务故障检测处理方法及装置 |
CN108279926A (zh) * | 2018-01-10 | 2018-07-13 | 浙江网新恒天软件有限公司 | 一种单体应用微服务化的方法 |
CN108418862A (zh) * | 2018-01-31 | 2018-08-17 | 金蝶软件(中国)有限公司 | 基于人工智能服务云平台的微服务管理方法和系统 |
Non-Patent Citations (3)
Title |
---|
HAITAO ZHANG等: "《Microservice Based Video Cloud Platform with Performance-Aware Service Path Selection》", 《IEEE》 * |
LUIS FELIPE HERRERA-QUINTERO等: "《Smart ITS Sensor for the Transportation Planning Based on IoT Approaches Using Serverless and Microservices Architecture》", 《IEEE》 * |
徐琛杰: "《面向微服务系统的运行时部署优化》", 《计算机应用于软件》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324470A (zh) * | 2020-01-20 | 2020-06-23 | 北京百度网讯科技有限公司 | 用于生成信息的方法及装置 |
CN111324470B (zh) * | 2020-01-20 | 2023-11-07 | 北京百度网讯科技有限公司 | 用于生成信息的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109412944B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11036922B2 (en) | Route information interaction method, electronic device, and computer storage medium | |
US10065321B2 (en) | Robot service cooperation system, platform and method | |
CN106445817B (zh) | 测试数据的处理方法、装置和系统 | |
CN106572173A (zh) | 一种配置信息更新方法、装置和系统 | |
CN109600261A (zh) | 网络修复方法、云端服务器、用户终端及网络修复系统 | |
CN108986821A (zh) | 一种设置房间与设备关系的方法和设备 | |
CN109992732A (zh) | 信息分享方法、装置、电子设备及存储介质 | |
CN105466414B (zh) | 一种导航路线的推荐方法及服务器 | |
CN109815057A (zh) | 一种数据备份方法及移动终端 | |
CN108932147A (zh) | 用于切换寄宿应用的方法和设备 | |
CN110488990A (zh) | 输入纠错方法及装置 | |
CN109525697A (zh) | 联系人共享和显示的方法、装置和终端 | |
CN105579976B (zh) | 网页自动化测试方法及装置 | |
CN109039959A (zh) | 一种sdn网络规则的一致性判断方法及相关装置 | |
CN106713684A (zh) | 统一通信客户端账号与话机的号码的绑定方法及设备 | |
CN109495309A (zh) | 云平台虚拟网络状态的智能检测方法和装置 | |
CN108628732A (zh) | 一种应用界面控件遍历测试方法及装置 | |
CN109725788A (zh) | 用户界面交互的处理方法、装置、处理器及终端 | |
CN109861869B (zh) | 一种配置文件的生成方法及装置 | |
CN109412944A (zh) | 基于微服务的请求转发方法、装置和服务器 | |
CN110505287B (zh) | 基于服务的业务线推荐方法、装置及存储介质 | |
CN110413398A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN110175240A (zh) | 与外呼流程相关的知识图谱的构建方法、装置及存储介质 | |
CN109697249A (zh) | 搜索目标对象以及发布对象的方法、系统以及存储介质 | |
CN111158881B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40002804 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |