CN110401696A - 一种去中心化处理的方法、通信代理、主机以及存储介质 - Google Patents
一种去中心化处理的方法、通信代理、主机以及存储介质 Download PDFInfo
- Publication number
- CN110401696A CN110401696A CN201910527161.9A CN201910527161A CN110401696A CN 110401696 A CN110401696 A CN 110401696A CN 201910527161 A CN201910527161 A CN 201910527161A CN 110401696 A CN110401696 A CN 110401696A
- Authority
- CN
- China
- Prior art keywords
- micro services
- communication agent
- request
- communication
- configuration information
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2876—Pairs of inter-processing entities at each side of the network, e.g. split proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5015—Service provider selection
Abstract
本申请公开了一种去中心化处理的方法、通信代理、主机以及存储介质,应用于微服务系统,微服务系统中的第一通信代理接收第一微服务应用发送的第一微服务请求,所述第一通信代理根据目标控制面规则确定与所述第一微服务请求对应的微服务访问地址,所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求,所述第二通信代理用于将所述第一微服务请求转发给所述第二微服务应用。可见,所述第一通信代理能够将微服务请求向对应的第二通信代理发送,无需控制面对微服务请求进行路由,有效的降低控制面对微服务请求进行数量的流量,有效的避免对控制面的冲击。
Description
技术领域
本申请涉及计算机领域,尤其涉及的是一种去中心化处理的方法、通信代理、主机以及存储介质。
背景技术
随着微服务与云化技术的快速发展,大量的微服务使得其运维的难度急剧增加,例如微服务的连接、管理和监控等。因此,通常需要通常专门的微服务系统,比如服务网格(Service Mesh),来负责服务之间的通信、限流、熔断和监控等。
微服务系统包括控制面和数据面,控制面可用于对数据面的边车(sidecar)所发送的微服务请求进行处理。以图1所示的服务网格开源软件(Istio)为例,控制面包括混音器(Mixer)为例,该Mixer用于承载sidecar与后端基础设施的通信桥梁以及不同的sidecar之间的通信桥梁。在Mixer接收到sidecar所发送的微服务请求的情况下,若Mixer根据微服务请求确定出该微服务请求所请求为后端基础设施,则Mixer将该微服务请求发送至对应的后端基础设施,若Mixer根据微服务请求确定出该微服务请求所请求为sidecar,则Mixer将该微服务请求发送至对应的sidecar。
在大量的sidecar向控制面发送大量的微服务请求的情况下,极易导致大量的微服务请求冲击控制面,以导致控制面受到流量的冲击而出现故障,一旦控制面出现故障,则已故障的控制面无法对大量sidecar所发送的微服务请求进行处理,从而导致故障扩散。
发明内容
本申请提供了一种去中心化处理的方法、通信代理、主机以及存储介质,其用于降低对控制面的流量冲击。
本发明实施例第一方面提供了一种去中心化处理的方法,应用于微服务系统,所述方法包括:
微服务系统中的第一通信代理接收第一微服务应用发送的第一微服务请求,所述第一微服务应用为与所述第一通信代理对应的微服务应用;所述第一通信代理根据目标控制面规则确定与所述第一微服务请求对应的微服务访问地址,所述目标控制面规则包括路由规则策略,所述路由规则策略包括所述第一微服务请求和所述微服务访问地址的对应关系,所述微服务访问地址为第二通信代理的地址,所述第二通信代理对应于第二微服务应用,所述第二微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同;所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求,所述第二通信代理用于将所述第一微服务请求转发给所述第二微服务应用。
采用本方面所示的方法,因可将控制面的目标控制面规则配置在数据面的通信代理上,从而缓解了控制面执行已配置在通信代理上的策略的资源,降低了控制面资源的耗费,而且因将目标控制面的配置在通信代理上,则通信代理基于该配置可执行目标控制面的功能,从而降低了通信代理向控制面所发送的信息的流量,降低了通信代理向控制面所发送的流量对控制面的冲击。而且有效的避免了控制面的未知故障(例如静默故障)扩散而影响业务的下发与运维。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述第一微服务请求的数量和所述微服务访问地址的数量均为多个,所述目标控制面规则还包括与所述第一微服务请求对应的流量拆分策略,所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的比例;所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求包括:所述第一通信代理根据所述流量拆分策略,将多个所述第一微服务请求,向每个所述微服务访问地址发送所述第一微服务请求。
所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的数量。所述流量拆分策略包括有多个第二微服务应用中每个第二微服务应用与拆分比例的对应关系,其中,所述第一微服务应用向所述第一通信代理发送了多个微服务请求,且多个所述微服务请求用于请求同一目标微服务业务,多个所述第二微服务应用均用于实现所述目标微服务业务;因将流量拆分策略配置在配置在通信代理上,降低了控制面执行流量拆分策略的资源的耗费。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:同一所述第一微服务请求对应的所述微服务访问地址的数量有多个,所述目标控制面规则还包括与所述第一微服务请求对应的负载均衡策略;所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求包括:所述第一通信代理根据所述负载均衡策略,在多个所述微服务访问地址中确定目标微服务访问地址,并向具有所述目标微服务访问地址的所述第二通信代理发送所述第一微服务请求。
配置有负载均衡策略的第一通信代理,可在该多个第二微服务应用中选取一个目标第二微服务应用处理,仅通过已选定的该目标第二微服务应用处理该该第一微服务请求,因将负载均衡策略配置在配置在通信代理上,降低了控制面执行负载均衡策略的资源的耗费。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述目标控制面规则还包括用于指示预设响应时长的断路器策略;所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求之后,所述方法还包括:所述第一通信代理确定条件是所述预设响应时长内未接收到所述第二通信代理发送的成功响应消息,则将所述第一微服务请求发送给第三通信代理,所述成功响应消息用于指示所述第二通信代理成功接收到所述第一微服务请求,所述第三通信代理用于将所述第一微服务请求转发给与所述第三通信代理对应的第三微服务应用,所述第三微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同。
配置有断路器策略的第一通信代理,若所述第一通信代理接收到与所述第一微服务应用所发送的第一微服务请求,所述第一通信代理确定需要将所述第一微服务请求发送给第二微服务应用,则所述第一通信代理可判断是否在所述断路器策略所指示的预设响应时长内接收到所述第二微服务应用所发送的成功响应消息;因将断路器策略配置通信代理上,降低了控制面执行断路器策略的资源的耗费。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述目标控制面规则还包括与所述第一微服务请求对应的数据上报策略,所述数据上报策略用于连接后端基础设施;所述第一通信代理接收第一微服务应用发送的第一微服务请求之后,所述方法还包括:所述第一通信代理根据所述数据上报策略,将所述第一微服务请求发送给所述后端基础设施,所述后端基础设施用于对已接收到的所述第一微服务请求进行监控。
配置有所述数据上报策略的第一通信代理,若该数据上报策略与所述第一微服务请求对应,则所述第一通信代理接收到所述第一微服务请求的情况下,所述第一通信代理即可将所述第一微服务请求向所述后端基础设施上报,若该数据上报策略与所述第二微服务请求对应,则所述第一通信代理接收到所述第二微服务请求的情况下,所述第一通信代理即可将所述第二微服务请求向所述后端基础设施上报,因将数据上报策略配置通信代理上,降低了控制面执行数据上报策略的资源的耗费。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述第一通信代理接收第二微服务请求,所述第二微服务请求所请求的微服务业务与所述第一微服务应用所支持的微服务业务相同;所述第一通信代理确定条件是所述第二微服务请求所包括的验证信息与所述预设验证信息相同,则将所述第二微服务请求转发给所述第一微服务应用。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述目标控制面规则还包括与所述第二微服务请求对应的配额管理策略,所述配额管理策略用于指示预设连接数量;所述第一通信代理将所述第二微服务请求转发给所述第一微服务应用包括:所述第一通信代理获取目标连接数量,所述目标连接数量为所述第一微服务应用当前正在处理的所述第二微服务请求的数量;所述第一通信代理确定条件是所述目标连接数量小于所述预设连接数量,则向所述第一微服务应用发送所述第二微服务请求。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述第一通信代理获取所述第一通信代理已存储的第一配置信息;所述第一通信代理接收至少一个目标通信代理发送的第二配置信息,所述目标通信代理为所述微服务系统中与所述第一通信代理不相同的通信代理,所述第一配置信息和至少一个所述第二配置信息中,至少一个包括所述第一通信代理的标识和控制面规则的对应关系;所述第一通信代理根据所述第一配置信息和至少一个所述第二配置信息确定所述目标控制面规则,所述目标控制面规则为与所述第一通信代理的标识对应的控制面规则。
采用本方面所示的方法,因在所述第一配置信息和所述第二配置信息中,至少一个用于指示所述控制面至少一项功能相关的规则的情况下,可根据第一配置信息以及第二配置信息将控制面的至少一项功能相关的规则配置在服务网格所包括的通信代理上,从而缓解了控制面执行已配置在通信代理上的功能的资源,降低了控制面资源的耗费,而且因将控制面的至少一项功能的相关规则配置在通信代理上,则通信代理基于该配置可执行控制面的至少一项功能,从而降低了通信代理向控制面所发送的流量,降低了通信代理向控制面所发送的流量对控制面的冲击,有效的避免业务的中断,且服务网格不会因数据面的流量冲高而挂死。而且有效的避免了服务网格控制面的未知故障(例如静默故障)扩散而影响业务的下发与运维。且通过本实施例所示的方法,服务网格中的任一通信代理,都能获得所述服务网格中每个通信代理所配置的规则,从而实现了服务网格的全局一致性,提高了对通信代理进行规则配置的效率。
本发明实施例第一方面的一种可选的实现方式中,所述方法还包括:所述第一通信代理获取已存储的第一节点列表;所述第一通信代理从所述至少一个目标通信代理接收第二节点列表,所述第一节点列表和至少一个所述第二节点列表中,至少一个包括所述微服务系统中的每个通信代理的标识;所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息,所述更新后第一配置信息包括所述微服务系统中的每个通信代理的标识与控制面规则的对应关系。
采用本方面所示的方法,为实现服务网格全局一致性,则所述通信代理根据本地存储的第一节点列表和从第二通信代理所发送的第二节点列表,进行所述通信代理所存储的目标对应关系的更新,以提高服务网格全局一致性的准确性和效率。
本发明实施例第一方面的一种可选的实现方式中,所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息包括:所述第一通信代理确定第一目标通信代理,所述第一节点列表中包括所述第一目标通信代理的标识且所述第二节点列表中不包括所述第一目标通信代理的标识;所述第一通信代理根据所述第一目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中删除所述第一目标通信代理的标识与控制面规则的对应关系后所生成的信息。
第一通信代理根据所述第一节点列表与所述第二节点列表确定第一目标通信代理,其中,所述第一目标通信代理是指,该第一目标通信代理的标识设置于所述第一节点列表中,且第一目标通信代理的标识不设置于所述第二节点列表中,此种情况说明对所述第一通信代理而言,所述服务网格中的第一目标通信代理已从服务网格中退出,为实现服务网格的全局一致性,则所述第一通信代理在本地所存储的目标对应关系中,删除所述第一目标通信代理的标识与控制面规则的对应关系。
本发明实施例第一方面的一种可选的实现方式中,所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息包括:所述第一通信代理确定第二目标通信代理,所述第一节点列表中不包括所述第二目标通信代理的标识且所述第二节点列表中包括所述第一目标通信代理的标识;所述第一通信代理根据所述第二目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中增加所述第二目标通信代理的标识与控制面规则的对应关系后所生成的信息。
第一通信代理根据所述第一节点列表与所述第二节点列表确定第二目标通信代理,其中,所述第二目标通信代理是指,该第二目标通信代理的标识不设置于所述第一节点列表中,且第二目标通信代理的标识设置于所述第二节点列表中,此种情况说明对于第一通信代理而言,所述第一通信代理所位于的服务网格中新增加了一个通信代理,即所述第二目标通信代理,为实现服务网格的全局一致性,则所述第一通信代理在本地所存储的目标对应关系中,增加所述第二目标通信代理的标识与控制面规则的对应关系。
本发明实施例第一方面的一种可选的实现方式中,所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息包括:所述第一通信代理确定第三目标通信代理,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;所述第一通信代理确定条件是第一对应关系的版本标识新于第二对应关系的版本标识,则确定所述更新后第一配置信息包括所述第一对应关系,所述第一对应关系为所述第一配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系,所述第二对应关系为所述第二配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系;所述第一通信代理确定条件是第二对应关系的版本标识新于第一对应关系的版本标识,则确定所述更新后第一配置信息包括所述第二对应关系。
所述第一通信代理根据所述第一节点列表和所述第二节点列表确定出第三目标通信代理,所述第三目标通信代理是指,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;此种情况说明,第一通信代理所存储的目标对应关系中以及目标通信代理所存储的目标对应关系中,均包括有该第三目标通信代理的标识和控制面规则的对应关系;
本发明实施例第二方面提供了一种通信代理,所述通信代理为微服务系统中的第一通信代理,所述通信代理包括:
接收单元,用于接收第一微服务应用发送的第一微服务请求,所述第一微服务应用为与所述第一通信代理对应的微服务应用;
确定单元,用于根据目标控制面规则确定与所述第一微服务请求对应的微服务访问地址,所述目标控制面规则包括路由规则策略,所述路由规则策略包括所述第一微服务请求和所述微服务访问地址的对应关系,所述微服务访问地址为第二通信代理的地址,所述第二通信代理对应于第二微服务应用,所述第二微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同;
发送单元,用于向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求,所述第二通信代理用于将所述第一微服务请求转发给所述第二微服务应用。
本发明实施例第二方面的一种可选的实现方式中,所述第一微服务请求的数量和所述微服务访问地址的数量均为多个,所述目标控制面规则还包括与所述第一微服务请求对应的流量拆分策略,所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的比例;所述发送单元具体用于,根据所述流量拆分策略,将多个所述第一微服务请求,向每个所述微服务访问地址发送所述第一微服务请求。
本发明实施例第二方面的一种可选的实现方式中,同一所述第一微服务请求对应的所述微服务访问地址的数量有多个,所述目标控制面规则还包括与所述第一微服务请求对应的负载均衡策略;所述发送单元具体用于,根据所述负载均衡策略,在多个所述微服务访问地址中确定目标微服务访问地址,并向具有所述目标微服务访问地址的所述第二通信代理发送所述第一微服务请求。
本发明实施例第二方面的一种可选的实现方式中,所述目标控制面规则还包括预设响应时长;所述发送单元还用于,确定条件是所述预设响应时长内未接收到所述第二通信代理发送的成功响应消息,则将所述第一微服务请求发送给第三通信代理,所述成功响应消息用于指示所述第二通信代理成功接收到所述第一微服务请求,所述第三通信代理用于将所述第一微服务请求转发给与所述第三通信代理对应的第三微服务应用,所述第三微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同。
本发明实施例第二方面的一种可选的实现方式中,所述目标控制面规则还包括与所述第一微服务请求对应的数据上报策略,所述数据上报策略用于连接后端基础设施;所述发送单元还用于,根据所述数据上报策略,将所述第一微服务请求发送给所述后端基础设施,所述后端基础设施用于对已接收到的所述第一微服务请求进行监控。
本发明实施例第二方面的一种可选的实现方式中,所述接收单元还用于,接收第二微服务请求,所述第二微服务请求所请求的微服务业务与所述第一微服务应用所支持的微服务业务相同;所述发送单元还用于,确定条件是所述第二微服务请求所包括的验证信息与所述预设验证信息相同,则将所述第二微服务请求转发给所述第一微服务应用。
本发明实施例第二方面的一种可选的实现方式中,所述目标控制面规则还包括与所述第二微服务请求对应的配额管理策略,所述配额管理策略用于指示预设连接数量;所述发送单元还用于,获取目标连接数量,所述目标连接数量为所述第一微服务应用当前正在处理的所述第二微服务请求的数量,确定条件是所述目标连接数量小于所述预设连接数量,则向所述第一微服务应用发送所述第二微服务请求。
本发明实施例第二方面的一种可选的实现方式中,所述接收单元还用于,获取所述第一通信代理已存储的第一配置信息;所述接收单元还用于,接收至少一个目标通信代理发送的第二配置信息,所述目标通信代理为所述微服务系统中与所述第一通信代理不相同的通信代理,所述第一配置信息和至少一个所述第二配置信息中,至少一个包括所述第一通信代理的标识和控制面规则的对应关系;所述确定单元还用于,根据所述第一配置信息和至少一个所述第二配置信息确定所述目标控制面规则,所述目标控制面规则为与所述第一通信代理的标识对应的控制面规则。
本发明实施例第二方面的一种可选的实现方式中,所述接收单元还用于,获取已存储的第一节点列表;所述接收单元还用于,从所述至少一个目标通信代理接收第二节点列表,所述第一节点列表和至少一个所述第二节点列表中,至少一个包括所述微服务系统中的每个通信代理的标识;所述确定单元还用于,根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息,所述更新后第一配置信息包括所述微服务系统中的每个通信代理的标识与控制面规则的对应关系。
本发明实施例第二方面的一种可选的实现方式中,所述确定单元包括:第一确定模块,用于确定第一目标通信代理,所述第一节点列表中包括所述第一目标通信代理的标识且所述第二节点列表中不包括所述第一目标通信代理的标识;第二确定模块,用于根据所述第一目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中删除所述第一目标通信代理的标识与控制面规则的对应关系后所生成的信息。
本发明实施例第二方面的一种可选的实现方式中,所述确定单元包括:第三确定模块,用于确定第二目标通信代理,所述第一节点列表中不包括所述第二目标通信代理的标识且所述第二节点列表中包括所述第一目标通信代理的标识;第四确定模块,用于根据所述第二目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中增加所述第二目标通信代理的标识与控制面规则的对应关系后所生成的信息。
本发明实施例第二方面的一种可选的实现方式中,所述确定单元包括:第五确定模块,用于确定第三目标通信代理,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;第六确定模块,用于确定条件是第一对应关系的版本标识新于第二对应关系的版本标识,则确定所述更新后第一配置信息包括所述第一对应关系,所述第一对应关系为所述第一配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系,所述第二对应关系为所述第二配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系;第七确定模块,用于确定条件是第二对应关系的版本标识新于第一对应关系的版本标识,则确定所述更新后第一配置信息包括所述第二对应关系。
本发明实施例第三方面提供了一种主机,包括处理器和存储器,其中,所述存储器中存有第一计算机可读程序和第二计算机可读程序;所述处理器通过运行所述存储器中的第一计算机可读程序,以执行用于提供微服务业务的微服务应用的功能,所述处理器通过运行所述存储器中的第二计算机可读程序,以用于完成上述本发明实施例第一方面任一项所示的方法。
本发明实施例第四方面一种计算机程序产品,当所述计算机产品被执行时,其用于执行上述本发明实施例第一方面任一项所示的方法。
本发明实施例第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令用于执行上述本发明实施例第一方面任一项所示的方法。
附图说明
图1为现有技术所提供的微服务系统的一种结构示例图;
图2为现有技术所提供的微服务系统的另一种结构示例图;
图3为本发明实施例所提供的微服务系统的一种实施例结构示意图;
图4为本发明实施例所提供的微服务系统的另一种实施例结构示意图;
图5为本发明实施例所提供的去中心化处理的方法的另一种实施例步骤流程图;
图6为本发明实施例所提供的微服务系统的另一种实施例结构示意图;
图7为本发明实施例所提供的微服务系统的另一种实施例结构示意图;
图8为本发明实施例所提供的微服务系统的另一种实施例结构示意图;
图9为本发明实施例所提供的去中心化处理的方法的另一种实施例步骤流程图;
图10为本发明实施例所提供的通信代理的一种实施例结构示意图;
图11为本发明实施例所提供的主机的一种实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中出现的术语“和/或”,可以是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
为更好的理解本发明所提供的一种去中心化处理的方法,以下首先对微服务进行说明:
将复杂系统切分为数十乃至上百个小服务,每个微服务负责实现一个独立的业务逻辑。这些微服务易于被理解和修改,并带来了语言和框架选择灵活性,缩短应用开发上线时间,可根据不同的工作负载和资源要求对服务进行独立扩容等优势。
开发人员可根据不同的业务需求开发出实现不同业务的微服务系统,如实现购物业务的微服务系统,实现航班预定业务的微服务系统等。以下结合图2所示对微服务系统的具体结构进行示例性说明,图2所示的示例对该微服务系统所实现的业务类型不做限定。
微服务系统包括多个主机,所述主机可为物理机,也可为虚拟机。主机内部包括一个或多个微服务应用,每个微服务应用可以理解为上述所示的用于负责微服务系统一个独立的业务逻辑的微服务,其中,主机内部还包括与每一微服务应用对应的通信代理,微服务系统所包括的不同的微服务应用用于实现不同的微服务业务,例如,若微服务系统所实现的业务为航班预定业务,则位于该微服务系统中不同的微服务应用可实现的微服务业务为航班时间表查询微服务业务、计算票价微服务业务、订单预定微服务业务、分配座位微服务业务、客户信息查询微服务业务等。与微服务应用对应的通信代理用于负责该微服务应用与微服务系统所包括的其他微服务应用之间的通信。
以图2所示对微服务系统的结构进行具体说明,图2所示以所述微服务系统包括有主机110和主机120为例进行示例性说明,所述主机110设置有微服务应用111和与该微服务应用111对应的通信代理112,所述主机120设置有微服务应用122和与该微服务应用122对应的通信代理121。图2所示对微服务应用111和微服务应用122所实现的微服务业务不做限定。例如,位于微服务系统中不同的微服务应用需要进行数据交互,例如,若主机110上的微服务应用111所实现的微服务业务为计算票价微服务业务,主机120上的微服务应用122所实现的微服务业务为订单预定微服务业务,则微服务应用111针对用户输入的订单信息实现了计算票价微服务业务后,微服务应用111需要将相关的订单信息发送给微服务应用122,以使该微服务应用122基于票价以及订单信息等实现订单预定微服务业务,以使用户基于该微服务系统实现了机票的预定。
为实现微服务应用111和微服务应用122之间的数据交互,则微服务应用111将需要发送至微服务应用122的数据首先发送给通信代理112,再由通信代理112将该数据转发给与所述微服务应用122对应的通信代理121,最后由通信代理121将数据转发给微服务应用122,可见,通过与不同的微服务应用对应的通信代理对数据的转发,实现了不同的微服务应用之间的数据交互。
当实现不同微服务业务的微服务应用大量部署时,与微服务应用一一对应的通信代理之间的连接形成了一个如图3所示的网格,该网格由能够进行数据交互的不同的通信代理构成,以使网格成为了微服务的通讯基础设施层,承载了微服务之间的所有数据,被称之为服务网格(service mesh)。服务网格是一个基础设施层,用于处理不同的微服务应用之间通信。
因服务网格中有数量众多的通信代理,为了更方便地对服务网格中的通信代理进行统一集中控制,则在服务网格上增加了控制面。
以下结合图4所示对微服务系统的结构进行示例性说明,微服务系统包括控制面和数据面,其中,控制面包括有三个控制面组件,即领航(Pilot)401、混音器(Mixer)402和鉴权(Istio-Auth)403,数据面为多个部署有微服务应用和通信代理的主机,对主机的说明请详见上述所示,具体不做赘述。因微服务系统所包括的不同的微服务应用之间的通信都由服务网格提供的,则通过控制面和数据面的配合,控制面能够对数据面的通讯进行监控、托管和控制等管控功能。
Pilot401、Mixer402和Istio-Auth403中各控制面组件包括有控制面规则,以下对各控制面组件的控制面规则所包括的策略进行说明:
控制面组件Pilot401的控制面规则具体包括服务注册与发现策略、路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略等。
所述服务注册与发现策略用于缓存当前服务网格中的所有微服务访问地址以及每一微服务访问地址所能实现的微服务业务,所述微服务访问地址为用于访问微服务应用的地址,具体的,需要调用实现特定微服务业务的微服务应用时,可向该微服务应用的微服务方位地址发送微服务请求,与该微服务应用对应的通信代理先接收该微服务请求,随后对微服务请求进行处理,所述通信代理对微服务请求进行处理后,再将该微服务请求转发给对应的微服务应用,可见,所述微服务访问地址也为与该微服务应用对应的通信代理的地址。
例如,在微服务系统所实现的微服务业务为购物业务的情况下,所述Pilot401的服务注册与发现策略可缓存第一微服务访问地址、第二微服务访问地址以及第三微服务访问地址,其中,与第一微服务访问地址对应的微服务业务为购物车微服务业务,与第二微服务访问地址对应的微服务业务为下单微服务业务,与第三微服务访问地址对应的微服务业务为发货微服务业务,在需要执行购物车微服务业务时,可访问具有第一微服务访问地址的微服务应用,在需要执行下单微服务业务时,可访问具有第二微服务访问地址的微服务应用,在需要执行发货微服务业务时,可访问具有第三微服务访问地址的微服务应用。
所述服务注册与发现策略还用于对接注册中心服务器,该注册中心服务器可具体包括一个或多个不同的注册中心服务器,在具体实现时,若有新的微服务业务加入至当前的服务网格中,则将能够执行该新的微服务业务的微服务应用的访问地址注册至注册中心服务器,Pilot401的服务注册与发现策略与注册中心服务器进行同步,从而获取到实现新的微服务业务的微服务应用的访问地址和其所实现的微服务业务;
例如,若新的微服务业务为评价微服务业务,该评价微服务业务需要加入至当前的服务网格中,则将能够执行评价微服务业务的微服务应用的访问地址注册至注册中心服务器中,Pilot401的服务注册与发现策略与注册中心服务器进行同步,从而获取到实现评价微服务业务的微服务应用的访问地址和评价微服务业务,从而确定出若需要执行评价微服务业务,则可访问具有实现评价微服务业务的微服务应用的访问地址的微服务应用,以实现评价业务。
本实施例对注册中心服务器所包括的注册中心服务器不做限定,例如,注册中心服务器可为用于管理云平台中多个主机上的容器化的应用(kubernetes)、分布式计算框架(mesos)、开放源代码的设计层面框架(spring)云平台(cloud)等。
路由规则策略用于根据微服务请求确定对应的微服务应用的访问地址,具体的,Pilot401的路由规则策略接收到微服务请求后,即可根据所述微服务请求获取该微服务请求所要请求的微服务业务,并确定能够实现该微服务业务的微服务应用的访问地址,则路由规则策略即可将该微服务请求路由至对应的微服务应用的访问地址上;
例如,若用户在微服务应用A上选定了商品,其中,微服务应用A为用于实现购物车微服务业务的微服务应用,则该微服务应用A可生成微服务请求,该微服务请求用于请求微服务应用B对微服务应用A所发送的微服务请求进行处理,微服务应用B为用于实现结算微服务业务的微服务应用,则路由规则策略可通过与注册中心服务器的同步查询出微服务应用B的访问地址,路由规则策略即可将微服务应用A所生成的微服务请求路由至微服务应用B上,以使微服务应用B根据微服务应用A所发送的微服务请求实现结算微服务业务。
协议管理策略用于负责管理通信代理的网络协议的配置,以使通信代理能够支持多种网络协议,从而使得服务网格所包括的多个通信代理之间,基于已配置的网络协议能够实现不同的通信代理之间进行正常的信息传输。
例如,所述协议管理策略可在通信代理上配置出传输控制协议(TCP)、网际数据包交换协议(IPX)、序列数据包交换协议(SPX)等。
若在微服务系统中,请求同一微服务业务的微服务请求有多个,且实现该微服务业务的微服务应用的数量也为多个,则流量拆分策略规则可根据预设策略将多个微服务请求分发至能够实现该微服务业务的不同的微服务应用上;
例如,请求同一订单评价微服务业务的微服务请求有100个,而实现订单评价微服务业务的微服务应用有微服务应用A、微服务应用B以及微服务应用C,则流量拆分策略可确定100个微服务请求中的20个微服务请求发送给微服务应用A,确定100个微服务请求中的40个微服务请求发送给微服务应用B,确定100个微服务请求中的40个微服务请求发送给微服务应用C。
在微服务系统中,存在着许许多多的通信代理,若一个通信代理出现故障,与该出现故障的通信代理进行信息交互的其他通信代理也无法进行正常的工作,则服务网格就会形成故障蔓延,最终导致整个微服务系统的瘫痪,这样的架构相较传统架构就更加的不稳定。为了解决这样的问题,因此产生了断路器策略。断路器策略指,调用方通信代理生成微服务请求,并将该微服务请求发送给接受方通信代理,在调用方通信代理将微服务请求发送给接受方通信代理后,若超过预置时长接受方通信代理都没有对微服务请求进行响应,则断路器策略及时向调用方通信代理返回错误响应,调用方通信代理在接收该错误响应的情况下,可将该微服务请求发送给其他通信代理,调用方通信代理无需长时间的等待,这样就不会使得调用方通信代理和接受方通信代理之间的调用线程因调用故障被长时间占用,从而避免了故障在整个系统中的蔓延。
例如,微服务应用A所发送的微服务请求,需要发送给微服务应用B,则与微服务应用A对应的通信代理A即可将该请求发送给与微服务应用B对应的通信代理B,断路器策略会监控通信代理A向通信代理B发送微服务请求后,通信代理B是否及时响应,若通信代理B超过阈值时长还是没有响应,则断路器策略向通信代理A返回一个错误响应,则通信代理A即可及时的将微服务请求发送给能够处理该微服务请求的其他通信代理,从而避免了在通信代理B出现故障,导致通信代理A和通信代理B之间的调用线程被长时间占用的弊端。
故障管理策略具体包括故障注入、故障检测以及故障自愈等策略。具体的,对于一个微服务系统而言,系统的健壮性非常重要。在微服务系统中存在大量的用于实现不同微服务业务的微服务应用,当部分微服务应用出现问题时,微服务应用需要具有较高的容错性,通过重试、断路、自愈等手段保证该出现问题的微服务应用能够继续进行正常的工作,进而使得微服务系统能够继续对外正常提供服务,因此需要对微服务应用进行充分的健壮性测试。对微服务应用进行健壮性测试的一个最大的困难是如何对微服务系统故障进行模拟,因微服务系统通过服务网格承载微服务之间的通信流量,因此可以在服务网格中通过故障管理策略规则进行故障注入,通过故障注入向微服务系统注入已知的故障,以模拟部分微服务应用出现故障的情况,对整个微服务系统的健壮性进行测试。故障检测用于,持续地测试微服务系统的运行的问题,以确保微服务系统可在各类故障环境下运行。故障检测可随机终止服务网格中的一个通信代理,通过使用这个方法,可以针对单个通信代理故障进行测试,以模拟故障中断的情况。故障自愈用于,能够恢复出现故障的微服务应用,从而使得修复后的微服务应用能够正常提供服务,在大多数情况下,是通过外部系统监控微服务应用的实例的状态,当微服务应用出现故障一段时间后则会重启服务。
负载均衡策略用于,若有多个微服务应用能够对同一微服务请求进行处理,则负载均衡策略用于在该多个微服务应用中选取一个处理该微服务请求的微服务应用,例如用于处理航班选座的微服务请求的微服务应用有多个,即微服务应用A、微服务应用B以及微服务应用C,则负载均衡策略可通过负载均衡策略算法在微服务应用A、微服务应用B以及微服务应用C中选择一个处理航班选座的微服务请求的最合适的微服务应用,通过负载均衡策略提高对微服务请求进行处理的成功率,其中,负载均衡策略算法可为轮训、随机、加权轮训等。
控制面组件Mixer402的控制面规则具体包括前提条件检查策略(Check)、配额管理策略(Quota)以及数据上报策略(Report);
Check用于在微服务应用响应微服务请求之前,基于与该微服务请求对应的前提条件对该微服务请求进行验证,在该微服务请求验证通过后,该微服务应用才会响应该微服务请求;
例如,Check首先确定能够处理用于请求航班选座微服务业务的微服务请求的微服务应用,Check将该请求发送给已确定的微服务应用之前,Check需要验证该航班选座微服务业务的微服务请求所携带的用户账户是否与预置的用户账户相同,只有在该微服务请求所携带的用户账户与预置的用户账户相同的情况下,Check才会将该微服务请求发送给已确定的微服务应用,并由该微服务应用对用于请求航班选座微服务业务的微服务请求进行处理,以实现对航班座位的选择。
Quota用于配置第一微服务应用和第二微服务应用之间预置的连接数量,若第一微服务应用和所述第二微服务应用之间已建立的连接的数量小于预置的连接数量,则所述第一微服务应用和所述第二微服务应用之间可继续建立连接,若所述第一微服务应用和所述第二微服务应用之间已建立的连接的数量大于或等于预置的连接数量,则所述第一微服务应用和所述第二微服务应用之间不可再建立连接,其中,第一微服务应用和第二微服务应用为微服务系统所包括的任意两个互不相同的两个微服务应用;
例如,若第一微服务应用用于实现购物车微服务业务,第二微服务应用用于实现订单结算微服务业务,且预置的连接数量为1000,则每一个用户在第一微服务应用上实现了购物车微服务业务后,该用户触发第一微服务应用建立与第二微服务应用之间的一个连接,以使该用户通过该连接,实现在第二微服务应用上进行订单结算微服务业务,Quota可对第一微服务应用与第二微服务应用之间的连接的数量进行统计,若有超过1000个用户触发过第一微服务应用建立与第二微服务应用之间的连接,则Quota将停止建立第一微服务应用和第二微服务应用之间的连接,此时若有新的用户希望由购物车微服务业务跳转至订单结算微服务业务,则Quota控制该新用户不能进行订单结算微服务业务。若触发过第一微服务应用建立与第二微服务应用之间的连接的用户的数量小于1000,若有新的用户希望由购物车微服务业务跳转至订单结算微服务业务,则Quota控制该新用户能够正常通过第二微服务应用实现订单结算微服务业务。
在微服务系统中,通常需要部署一些后端基础设施以用于支撑业务功能,这些后端基础设施包括策略类如访问控制,配额管理策略以及遥测报告等。Mixer402负责与后端基础设施对接业务监控数据,涵盖日志、服务调用链状态信息、响应结果等,后端基础设施包含用于统一日志层的开源数据收集器(fluentd)、用于提供数据搜集、存储、处理、可视化和告警的组件(prometheus)、用于提供监控服务的组件(cloudwatch)等,可见,通过Mixer402实现服务网格中的通信代理和后端基础设施之间的通信。
Mixer402所包括的Report用于对接不同的上述所示的后端基础设施,以使通过Report实现了通信代理和后端基础设施之间的信息交互,以下对通信代理是是如何通过Report与后端基础设施之间进行交互的进行具体说明:
首先,通信代理在接收到微服务请求后,可在微服务请求中搜集日志数据、监控数据等,通信代理将已搜集到的日志数据、监控数据等上报给Repor;
Mixer所包括的适配器与后端基础设施进行连接,则Report通过适配器将日志数据、监控数据等上报给后端基础设施,后端基础设施可通过Report实现对通信代理的跟踪和计费等功能。
管理人员可以将访问控制的安全策略配置在Istio-Auth403中,以使Istio-Auth403根据已配置的安全策略对通信代理发起的请求所携带的安全证书进行鉴权,并基于安全策略判断是否允许该通信代理访问服务网格中其他的通信代理。
基于上述所示对微服务系统的说明可知,不同的通信代理为实现相互之间的通信,或者通信代理为实现与后端基础设施的通信,则发起通信的通信代理需要向控制面发送请求,控制面所包括的控制面组件Pilot401、Mixer402以及Istio-Auth403需要对通信代理所发送的请求进行处理,在大量通信代理向控制面发送请求时,会造成控制面所包括的各控制面组件处理大量由通信代理发送的请求从而造成对控制面的冲击,极易造成控制面所包括的控制面组件的故障。
基于图4所示的微服务系统,以下结合图5所示对本申请所提供的去中心化处理的方法的具体执行过程进行示例性说明:
步骤501、第一通信代理接收第一配置信息。
采用本实施例所示的方法,可将控制面的规则通过第一配置信息配置在各通信代理上,从而由各通信代理执行控制面的规则,有效的降低了控制面所处理的微服务请求的数量,为实现对服务网格所支持的控制面规则的配置,则操作人员可在服务网格中随机选定一个第一通信代理,可见,本实施例所示的第一通信代理为所述服务网格所包括的任一通信代理。
所述第一通信代理所位于的主机可提供操作界面,操作人员可在该操作界面上根据需要将第一配置信息输入至所述第一通信代理。其中,所述第一配置信息包括第一标识和第一控制面规则的对应关系,其中,所述第一标识为所述服务网格中的一个通信代理的标识,所述第一控制面规则需要配置在具有所述第一标识的通信代理上的控制面规则,本实施例对所述第一配置信息所包括的第一标识和第一控制面规则的对应关系的具体数量不做限定。
可选的,所述第一配置信息所包括第一标识可与所述第一通信代理的标识相同,此种情况下,说明所述第一配置信息通过所述第一标识对应的第一控制面规则,对所述第一通信代理所支持的控制面规则进行配置。
可选的,所述第一配置信息所包括的第一标识与所述第一通信代理的标识不相同,此种情况下,说明所述第一配置信息通过所述第一标识对应的第一控制面规则,对具有所述第一标识的通信代理所支持的控制面规则进行配置。
为实现通过第一配置信息实现微服务系统的去中心化,则所述第一配置信息所包括的第一控制面规则包括图4所示的控制面规则所包括的至少一项策略,具体的,所述第一控制面规则可为控制面组件Pilot的控制面规则所包括的至少部分策略,和/或控制面组件Mixer的控制面规则所包括的至少部分策略,和/或控制面组件Istio-Auth的控制面规则所包括的策略,具体在本示例中不做限定。
以下对第一控制面规则的可选的几种示例进行示例性说明,需明确的是,本实施例对所述第一控制面规则所包括的具体策略不做限定,只要能够通过第一配置信息将控制面规则的至少一项策略配置在服务网格所包括的至少一个通信代理上即可。
例如,采用本实施例所示的第一配置信息可包括控制面组件Pilot的部分策略以及控制面组件Mixer所包括部分策略,以下结合图6所示进行示例性说明:
图6所示为本实施例所提供的微服务系统的一种结构示例,本实施例所示的微服务系统包括数据面和控制面,本实施例所示的数据面包括服务网格601,对服务网格601的具体说明请详见图3所示,具体在本实施例中不做赘述。本实施例所示的控制面包括有三个控制面组件,即Pilot602、Mixer603和Istio-Auth604。
采用本实施例所示的第一配置信息可将现有技术所示的控制面组件Pilot所包括的部分策略配置在通信代理上,由图4所示可知,控制面组件Pilot的控制面规则所包括的策略为服务注册与发现策略、路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略,则本实施例所示的所述第一配置信息可将服务注册与发现策略、路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略中的部分策略配置在所述通信代理上。
本实施例对保留在所述控制面组件Pilot上的策略以及配置在通信代理上的由原控制面组件Pilot所具有的策略不做限定,只要在所述通信代理上配置有原控制面组件Pilot所具有的部分策略即可,对原控制面组件Pilot所具有的策略的具体说明请详见图4所示,具体在本实施例中不做赘述。
图6所示的示例中,以第一控制面规则包括路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略为例,则相对于图4所示,本实施例所示的控制面的Pilot仅保留服务注册与发现策略。
本示例之所以将服务注册与发现策略保留在Pilot中,因服务注册与发现策略主要用于对接注册中心服务器605,以使服务注册与发现策略获取服务注册中心服务器所存储的数据,通信代理只需要周期性的向配置有服务注册与发现策略的Pilot获取到服务注册中心服务器所存储的数据即可,不同的通信代理之间所交互的信息无需经过Pilot的服务注册与发现策略,从而使得通信代理之间所交互的信息不会冲击配置有服务注册与发现策略的Pilot。
可见,在本示例中,因Pilot602将其原先具有的所有策略中,除去服务注册与发现策略之外的其他所有策略,都配置在了服务网格所包括的通信代理中,则使得图6所示的示例中,Pilot602无需具有通信代理已具有的路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略。
采用本实施例所示的第一配置信息可将现有技术所示的控制面组件Mixer所包括的部分策略配置在通信代理上,由图4所示可知,控制面组件Mixer的控制面规则所包括的策略为Check、Quota以及Report,则本实施例所示的所述第一配置信息可将Check和Quota配置在所述通信代理上,而在Mixer上仅配置Report。
可见,在本示例中,因Mixer603将其原先具有的所有策略中,除去Report之外的其他所有策略,都配置在了服务网格所包括的通信代理中,则使得图6所示的示例中,Mixer603无需具有通信代理已具有的Check和Quota功能,此种示例下,Mixer603仅具有Report策略。
在Mixer603保留了Report功能的情况下,Mixer603可通过Report功能对接后端基础设施606,对所述后端基础设施606的具体说明请详见上述所示,具体在本实施例中不做赘述。
本示例所示的将Istio-Auth604所具有的功能保留在Istio-Auth604上,不将Istio-Auth604所具有的功能通过第一配置信息配置在第一通信代理上。从而使得本示例所示的微服务系统包括控制面组件Istio-Auth604。
需明确的是,图6所示的示例仅仅为本申请所示的去中心化处理的方法的一种可选的示例,对第一配置信息所包括的第一控制面规则所指示的具体策略不做限定。
又如,采用本实施例所示的第一配置信息可包括控制面组件Pilot的部分策略、控制面组件Mixer所包括全部策略以及Istio-Auth所包括的全部策略配置在通信代理上,具体结合图7所示对本示例进行说明:
如图7所示,本实施例所示的微服务系统包括数据面和控制面,所述数据面为包括有服务网格701,对服务网格701的具体说明请详见图3所示的实施例,具体在本实施例中不做赘述。本实施例所示的控制面可仅包括一个控制面组件,即Pilot702,本实施例所示将图4所包括的控制面组件Mixer和Istio-Auth所包括的全部策略均配置于通信代理中,从而实现了通信代理和控制面的解耦。
如图7所示,所述第一配置信息所包括的第一控制面规则包括路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略为例,具体说明请详见图6所示,具体在本实施例中不做赘述。
可见,在本示例中,因Pilot702将其原先具有的所有功能中,除去服务注册与发现策略之外的其他所有策略,都配置在了通信代理中,则使得图7所示的示例中,Pilot702无需在具有通信代理已具有的路由规则策略、协议管理策略、流量拆分策略、断路器策略、故障管理策略、负载均衡策略,此种示例下,Pilot702仅具有服务注册与发现策略。
在Pilot702保留了服务注册与发现策略功能的情况下,Pilot702通过服务注册与发现策略功能可对接注册中心服务器705,对注册中心服务器705的具体说明,请详见上述所示,具体在本实施例中不做赘述。
具体的,本示例中,为实现通信代理与Mixer的解耦,则将Mixer所具有的全部策略配置在通信代理中,如图7所示,将Mixer所具有的Check、Quota和Report功能相关的策略配置在所述通信代理上。
在通信代理具有Report功能的前提下,通信代理可通过Report功能对接后端基础设施706,对所述后端基础设施706的具体说明请详见上述所示,具体在本实施例中不做赘述。
本示例所示还可实现通信代理与控制面的Istio-Auth之间的解耦,具体的,将Istio-Auth功能相关的策略通过第一配置信息的方式配置在通信代理上,对Istio-Auth的功能的具体说明,请详见上述所示,具体不做赘述。
可见,本实施例所示的微服务系统可实现数据面和控制面的解耦,以下结合图8所示对实现本实施例所示的方法的微服务系统的具体结构进行说明:
如图8所示,所述微服务系统包括:Pilot801以及多个主机802,每一所述主机802包括有微服务应用和通信代理,所述主机802的具体说明请详见上述所示,具体在本实施例中不做赘述,所述Pilot801所包括的功能的具体说明,请详见图8所示,具体不做赘述。
由图8所示的微服务系统可知,相对于现有技术所示的微服务系统,本实施例所示的控制面无需设置Mixer以及Istio-Auth所具有的策略,在控制面中仅需保留Pilot801所具有的服务注册与发现策略功能,其余可全部设置于所述通信代理上。
本实施例中对服务网格中不同的通信代理所配置的具体策略不做限定,只要微服务系统如图8所示的结构即可。
可选的,在其他示例中,也可将控制面的全部策略配置在通信代理上,则使得微服务系统不再包括Pilot、Mixer以及Istio-Auth。
需明确的是,本实施例所示以第一通信代理所获取到的第一配置信息为操作人员配置在所述第一通信代理上的为例进行示例性说明,在其他示例中,所述第一配置信息也可为所述第一通信代理执行本实施例所示的去中心化方法后已配置完成并已存储在第一通信代理本地上的配置信息,具体不做限定,只要所述第一配置信息包括所述服务网格所包括的至少一个通信代理的标识和控制面规则的对应关系,或者所述第一配置信息指示所述第一通信代理尚未配置控制面规则即可。
步骤502、第一通信代理接收所有目标通信代理发送的第二配置信息。
本实施例所示的所有所述目标通信代理为所述微服务系统中与所述第一通信代理不相同的所有通信代理,例如,若服务网格中有通信代理A、通信代理B、通信代理C、通信代理D以及通信代理E,在第一通信代理为通信代理C的情况,则通信代理A、通信代理B、通信代理D以及通信代理E均为所述目标通信代理,则本示例中,通信代理C需要接收通信代理A发送的第二配置信息,接收通信代理B发送的第二配置信息,接收通信代理D发送的第二配置信息以及接收通信代理E发送的第二配置信息。
以下对所述第二配置信息进行说明:
一种可选的示例中,若某个目标通信代理还尚未配置控制面的规则且未接收到其他通信代理发过来的配置信息的情况下,则该目标通信代理所生成的第二配置信息为空白的信息,或者该目标通信代理所生成的第二配置信息包括用于指示尚未配置控制面规则的字段,具体在本实施例中不做限定,只要所述第一通信代理接收到该第二配置信息的情况下,能够根据该第二配置信息确定出发送该第二配置信息的目标通信代理尚未配置控制面规则即可。
另一种可选的示例中,所述第二配置信息包括第二标识和第二控制面规则,其中,第二标识为所述服务网格中与所述第一通信代理不相同的一个通信代理的标识,所述第二控制面规则包括需要配置在具有所述第二标识的通信代理上的控制面规则,本实施例对所述第二标识的具体说明,请详见上述对第一标识的说明,对所述第二配置信息的说明请详见上述所示对第一配置信息的说明,具体不做赘述。
步骤503、第一通信代理根据第一配置信息和所有第二配置信息确定目标控制面规则。
本实施例中,在所述第一通信代理接收到操作人员输入的第一配置信息,且在所述第一通信代理接收到所有所述目标通信代理所发送第二配置信息的情况下,所述第一通信代理即可根据所述第一配置信息和所有所述第二配置信息确定出目标控制面规则,其中,所述目标控制面规则包括所述第一通信代理的标识对应的控制面规则。
本实施例所示的第一通信代理的标识和所述目标控制面规则的对应关系可设置于所述第一配置信息中,和/或,所述第一通信代理的标识和目标控制面规则的对应关系可设置于至少一个第二配置信息中。
在所述第一通信代理接收到所述第一配置信息和所有所述第二配置信息的情况下,所述第一通信代理即可在第一配置信息和所有所述第二配置信息中,确定出第一通信代理的标识对应的目标控制面规则。
例如,若第一配置信息包括有通信代理A标识和对应的A控制面规则,一个第二配置信息包括有通信代理B标识和对应的B控制面规则,另一个第二配置信息包括有通信代理C标识和对应的C控制面规则,另一个第二配置信息包括通信代理D标识和对应的D控制面规则。
在第一通信代理的标识为B的情况下,所述第一通信代理可在第一配置信息和所有所述第二配置信息中,确定出第一通信代理的标识对应的目标控制面规则,因在本示例中,所述第一通信代理的标识为B,则在本示例中,所述第一通信代理即可确定出所述目标控制面规则包括与通信代理B标识对应的B控制面规则。
步骤504、第一通信代理接收微服务请求。
步骤505、第一通信代理通过目标控制面规则对微服务请求进行处理。
由上述说明可知,微服务系统实现特定的业务,是基于微服务系统所包括的每一微服务应用对微服务请求进行处理以实现其对应的微服务业务的,例如,若微服务系统所实现的业务为购物业务,则该微服务系统所包括的各微服务应用所实现的微服务业务为商品浏览微服务业务、购物车微服务业务、优惠信息计算微服务业务、订单结算微服务业务以及发货微服务业务等,通过各微服务应用对微服务请求的处理实现了微服务系统的功能。
本实施例对所述第一通信代理所接收到的微服务请求的发送主体不做限定,例如,本实施例所示的第一通信代理所接收到的微服务请求可为第一微服务应用所发送的第一微服务请求,其中,所述第一微服务应用为与所述第一通信代理对应的微服务应用,可见,本种示例中,所述第一通信代理所接收到的第一微服务请求的发送主体为与所述第一微服务应用,又如,本实施例所示的所述第一通信代理所接收到的微服务请求还可为第二微服务请求,该第二微服务请求为目标微服务应用所发送的,所述目标微服务应用和所述第一微服务应用为所述服务网格中互不相同的两个微服务应用。
继续以上述示例为例,若与第一通信代理对应的第一微服务应用所实现的微服务业务为商品浏览微服务业务,则所述第一通信代理所接收到的第一微服务请求为所述第一微服务应用发送的,具体的,所述第一微服务应用基于用户点击网页所显示的商品图标所生成的请求事件生成对应的第一微服务请求,此种情况下,第一微服务请求的发送主体为与所述第一通信代理对应的第一微服务应用;又如,若所述第一微服务应用所实现的微服务业务为购物车微服务业务,则所述第一通信代理所接收到的第二微服务请求为实现商品浏览微服务业务的微服务应用发送的,该第二微服务请求用于请求购物车微服务业务,具体的,该第二微服务请求用于指示已选定商品、用户账户等信息,此时在所述第一微服务应用通过第一通信代理接收到该微服务请求的情况下,所述第一微服务应用将该第二微服务请求所指示的已选定商品的标识设置在购物车中。
具体的,本实施例所示通过上述所示的第一配置信息和所有第二配置信息,因将控制面的至少一项策略配置在了第一通信代理上,则使得第一通信代理能够基于所述目标控制面规则的指示,对微服务请求进行对应的处理,以下结合目标控制面所包括的具体策略,对第一通信代理进行处理的具体方式进行示例性的说明:
一种示例,若所述目标控制面规则包括服务注册与发现策略,则所述第一通信代理可对接注册中心服务器,以获取当前服务网格中的所有微服务访问地址以及每一微服务访问地址所能实现的微服务业务,对服务注册与发现策略的具体说明,请详见图4所示的实施例,具体在本示例中不做赘述。
另一种示例,若所述目标控制面规则包括与所述第一微服务请求对应的路由规则策略,具体的,与所述第一微服务请求对应的路由规则策略包括有第一微服务请求和微服务访问地址的对应关系,所述微服务请求用于请求目标微服务业务,所述目标微服务业务为能够对第一微服务应用所发送的所述第一微服务请求进行处理的微服务业务,所述微服务访问地址为用于实现所述目标微服务业务的微服务应用的地址;
在所述第一通信代理确定出所述路由规则策略的情况下,所述第一通信代理即可基于所述路由规则策略对所述第一微服务请求进行处理,具体的,所述第一通信代理通过查询所述路由规则策略确定出与第一微服务请求对应的微服务访问地址,所述第一通信代理将所述第一微服务请求向所述微服务访问地址发送。
例如,若所述第一微服务应用所实现的微服务业务是购物车微服务业务,则在第一微服务应用对用户选定商品的操作执行完成后,所述第一微服务应用生成第一微服务请求,所述第一微服务请求可携带有用户所选定的商品的标识、用户的账户信息以及所要请求的微服务业务为订单结算微服务业务等,具体对该第一微服务请求所携带的内容不做限定,只要该第一微服务请求用于调用实现订单结算微服务业务的微服务应用即可。所述第一微服务应用将该第一微服务请求发送给第一通信代理,所述第一通信代理确定出所述第一微服务应用所发送的第一微服务请求确定出,其所请求的微服务业务为订单结算微服务业务,则所述第一通信代理基于已配置的所述目标控制面规则查询本地所存储的路由规则策略,所述第一通信代理即可确定出与用于请求订单结算微服务业务的第一微服务请求对应的微服务访问地址,其中,所述微服务访问地址为用于实现订单结算微服务业务的第二微服务应用的地址。所述第一通信代理将所述第一微服务请求向具有所述微服务访问地址发送,与所述第二微服务应用对应的第二通信代理可接收第一通信代理所发送的所述第一微服务请求,所述第二通信代理将所述第一微服务请求转发给所述第二微服务应用,以使用于实现订单结算的微服务业务的第二微服务应用能够接收到该第一微服务请求,该用于实现订单结算微服务业务的第二微服务应用即可基于该第一微服务请求实现订单结算微服务业务。
另一种示例,若所述目标控制面规则包括协议管理策略,则第一通信代理可对第一通信代理的网络协议进行配置,以使第一通信代理能够支持多种网络协议,从而使得第一通信代理能够与服务网格所包括的任意通信代理之间,基于已配置的网络协议成功进行信息传输,对协议管理策略的具体说明,请详见图4所示的说明,具体不做赘述。
另一种示例,在第一通信代理接收到多个第一微服务请求,且根据所述路由规则策略确定出多个微服务访问地址的情况下,所述第一通信代理可根据目标控制面规则所包括的与所述第一微服务请求对应的流量拆分策略进行第一微服务请求的发送。
具体的,所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的数量。本实施例所示的流量拆分策略包括有多个第二微服务应用中每个第二微服务应用与拆分比例的对应关系,其中,所述第一微服务应用向所述第一通信代理发送了多个微服务请求,且多个所述微服务请求用于请求同一目标微服务业务,多个所述第二微服务应用均用于实现所述目标微服务业务;
例如,所述第一微服务应用所发送的多个第一微服务请求所请求的目标微服务业务为订单结算微服务业务,多个所述第二微服务应用均用于实现订单结算微服务业务。
在所述第一通信代理确定出目标控制面规则包括所述流量拆分策略的情况下,所述第一通信代理将具有目标数量的所述第一微服务请求发送给目标第二微服务应用,其中,所述目标第二微服务应用为多个所述第二微服务应用中的任一微服务应用,所述目标数量为所述微服务请求的总数量与该目标第二微服务应用对应的拆分比例的乘积。
为更好的理解,以下结合具体示例进行示例性说明,本实施例所示的流量拆分策略可预先存储有预设拆分列表,所述预设拆分列表包括有多个第二微服务应用的标识,该预设拆分列表包括每个第二微服务应用的标识和拆分比例的对应关系,本实施例所示的位于同一预设拆分列表中的多个第二微服务应用所实现的微服务业务相同,均用于实现所述第一微服务请求所请求的微服务业务,以下结合表1所示对所述预设拆分列表进行说明:
表1
第二微服务应用的标识 | 拆分比例 |
第二微服务应用A | 10% |
第二微服务应用B | 20% |
第二微服务应用C | 30% |
第二微服务应用D | 40% |
本实施例所示的表1所包括的所有第二微服务应用均用于实现订单结算微服务业务,本实施例所示的服务网格中,用于实现订单结算微服务业务的第二微服务应用为第二微服务应用A、第二微服务应用B、第二微服务应用C以及第二微服务应用D为例,且以本实施例所示的所述第一微服务应用用于实现购物车微服务业务为例,在所述第一微服务应用实现了多个用户的购物车微服务业务的情况下,所述第一微服务应用生成与每个用户对应的第一微服务请求,该第一微服务请求包括对应的用户账户信息、该用户所选定的商品以及所请求的微服务业务为订单结算微服务业务等信息;
如,本实施例所示的第一微服务应用处理了1000个用户的购物车微服务业务,则在1000个用户选定了商品后,所述第一微服务应用生成了1000个第一微服务请求,并将该1000个第一微服务请求发送给第一通信代理;
所述第一通信代理接收到1000个微服务请求后,确定该1000个微服务请求所调用的用于实现下订单微服务业务的第二微服务应用有多个,即第二微服务应用A、第二微服务应用B、第二微服务应用C以及第二微服务应用D,则所述第一通信代理即可基于表1所示将1000*10%=100个第一微服务请求发送给第二微服务应用A,所述第一通信代理基于表1所示将1000*20%=200个第一微服务请求发送给第二微服务应用B,所述第一通信代理基于表1所示将1000*30%=300个第一微服务请求发送给第二微服务应用C,所述第一通信代理基于表1所示将1000*40%=400个第一微服务请求发送给第二微服务应用D,从而避免大量的微服务请求集中发送给部分微服务应用,降低了对微服务应用的冲击,降低了微服务应用所处理的微服务请求的数量。
另一种示例,若所述目标控制面规则包括断路器策略,所述断路器策略用于指示预设响应时长;
在第一通信代理确定出所述目标控制面规则包括断路器策略的情况下,若所述第一通信代理接收到与所述第一微服务应用所发送的第一微服务请求,所述第一通信代理确定需要将所述第一微服务请求发送给第二微服务应用,则所述第一通信代理可判断是否在所述断路器策略所指示的预设响应时长内接收到所述第二微服务应用所发送的成功响应消息;其中,所述第一微服务请求所请求的微服务业务与所述第二微服务应用所实现的微服务业务相同,所述成功响应消息用于指示所述第二微服务应用成功接收到所述第一微服务请求;
若所述第一通信代理判断出没有在所述预设响应时长内接收到所述成功响应消息,则说明与所述第二微服务应用对应的第二通信代理出现故障,该已故障的第二通信代理无法实现第一微服务应用和第二微服务应用之间正常的信息交互,为避免因通信代理出现故障而使得微服务系统出现故障蔓延的弊端,则本实施例所示的第一通信代理将所述第一微服务请求发送给第三微服务应用,所述第二微服务应用与所述第三微服务应用不相同,且所述第三微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同。
可见,采用本实施例所示,在第一通信代理配置了断路器策略后,在所述第一通信代理所发送的第一微服务请求没有被成功接收的情况下,所述第一通信代理可切换接收所述第一微服务请求的通信代理,直至所述第一微服务请求被成功接收,有效的避免了微服务系统因通信代理出现故障而出现故障蔓延的情况,为更好的理解本实施例,以下结合具体示例进行示例性说明:
本示例中,所述第一微服务应用所实现的微服务业务为购物车微服务业务,则该第一微服务应用实现了购物车微服务业务后生成第一微服务请求,所述第一微服务请求用于请求订单结算微服务业务;
所述第一通信代理接收到所述第一微服务应用所发送的所述第一微服务请求后,即可基于所述第一微服务请求确定出第二微服务应用,其中,所述第二微服务应用用于实现订单结算微服务业务;
所述第一通信代理向与所述第二微服务应用对应的第二通信代理发送所述第一微服务请求,并在所述第一通信代理侧启动计时器,判断是否在所述断路器策略指示的所述预设响应时长内接收到所述第二通信代理所发送的成功响应消息;
若计时器超时,所述第一通信代理没有接收到所述第二通信代理所发送的所述成功响应消息,则所述第一通信代理即可确定出与所述第二通信代理已故障,无法进行继续进行订单结算微服务业务的处理;
所述第一通信代理即可在所述微服务系统中确定出第三微服务应用,所述第三微服务应用也用于处理订单结算微服务业务,则所述第一通信代理即可将所述第一微服务请求向所述第三微服务应用对应的第三通信代理发送;
通过循环执行上述步骤,直至所述第一通信代理成功将所述第一微服务请求发送给用于执行订单结算微服务业务的微服务应用。
另一种示例,若所述目标控制面规则包括故障管理策略,则第一通信代理可执行故障注入、故障检测以及故障自愈,对所述故障管理策略的具体说明请详见图4所示,具体不做赘述;
具体的,配置有故障注入的第一通信代理可配置已知故障,并向第一微服务应用发送该已知故障,以模拟出微服务系统中第二微服务应用出现故障的情况,其中,所述第二微服务应用为与第一微服务应用互不相同的微服务应用;又如,所述第一通信代理也可将已知故障向第二通信代理发送,以模拟出第一微服务应用出现故障的情况;配置有故障检测的第一通信代理可持续性的检测第一微服务应用的运行问题,以检测第一微服务应用的运行是否有问题以及出现了何种问题;配置有故障自愈的第一通信代理能够恢复出现故障的第一微服务应用,从而使得修复后的第一微服务应用能够正常提供服务,且所述第一通信代理还可监控第一微服务应用的实例的状态,当第一微服务应用出现故障一段时间后则会重启该第一微服务应用。
另一种示例,若所述目标控制面规则包括与所述第一微服务请求对应的负载均衡策略;具体的,在第一通信代理接收到第一微服务应用所发送的第一微服务请求,且确定出有多个第二微服务应用所支持的微服务业务与该第一微服务请求所请求的微服务业务相同,即多个第二微服务应用均能够对同一第一微服务请求进行处理;
配置有负载均衡策略的第一通信代理,可在该多个第二微服务应用中选取一个目标第二微服务应用处理,仅通过已选定的该目标第二微服务应用处理该该第一微服务请求,例如,以第一微服务请求所请求的微服务业务为航班选座微服务业务,且能够实现航班选座微服务业务的第二微服务应用有多个,即第二微服务应用A、第二微服务应用B以及第二微服务应用C,则配置有负载均衡策略的第一通信代理,可通过负载均衡策略算法在第二微服务应用A、第二微服务应用B以及第二微服务应用C中选择一个处理第一微服务请求的最合适的第二微服务应用作为所述目标第二微服务应用,通过负载均衡策略提高对微服务请求进行处理的成功率,其中,负载均衡策略算法可为轮训、随机、加权轮训等。
另一种示例,若所述目标控制面规则包括与第二微服务请求对应的前提条件检查策略(Check),其中,所述前提条件检查策略用于指示预设验证信息;
配置有所述前提条件检查策略的所述第一通信代理判断第二微服务请求所包括的验证信息是否与所述预设验证信息相同;其中,所述第二微服务请求为第二微服务应用所发送的微服务请求,具体说明请详见上述所示,具体不做赘述;
在所述第一通信代理确定出所述第二微服务请求所包括的验证信息与所述预设验证信息相同的情况下,则所述第一通信代理将所述第二微服务请求发送给第一微服务应用;
在所述第一通信代理确定出所述第二微服务请求所包括的验证信息与所述预设验证信息不相同的情况下,则所述第一通信代理不将所述第二微服务请求发送给第一微服务应用。
为更好的理解,以下结合具体示例进行示例性说明:
在本示例中,所述前提条件检查策略所指示的预设验证信息可为A账户信息;
所述第一通信代理接收第二微服务应用所发送的第二微服务请求,其中,所述第二微服务请求所请求的微服务业务为订单结算微服务业务,所述第一微服务应用所实现的微服务业务为订单结算微服务业务,而所述第二微服务应用所实现的微服务业务是购物车微服务业务;
在第二微服务应用实现了购物车微服务业务的情况下,所述第二微服务应用即可将第二微服务请求发送给第二通信代理,该第二微服务请求可包括用户所选定的商品信息,用户的账户信息以及用于请求订单结算微服务业务等的信息;
所述第二通信代理将该第二微服务请求发送给第一通信代理;
所述第一通信代理接收到所述第二微服务请求的情况下,所述第一通信代理即可确定所述第二微服务请求所携带的用户的账户信息是否与前提条件检查策略所指示的预设验证信息相同,该示例中,若所述第一通信代理确定出第二微服务请求所携带的用户账户信息为A账户信息,则说明,具有A账户信息的用户具有访问所述第一微服务应用的权限,则所述第一通信代理即可将所述第二微服务请求发送给所述第一微服务应用,以使所述第一微服务应用根据所述第二微服务请求实现订单结算微服务业务。
另一种示例,若所述目标控制面规则包括与所述第二微服务请求对应的配额管理策略(Quota),所述配额管理策略用于指示预设连接数量;在所述第一通信代理根据所述配额管理策略进行处理的过程中,所述第一通信代理首先获取目标连接数量,所述目标连接数量为所述第一微服务应用当前正在处理的所述第二微服务请求的数量;
所述第一通信代理判断所述目标连接数量是否大于或等于所述预设连接数量;
若所述第一通信代理判断出所述目标连接数量小于所述预设连接数量,则所述第一通信代理将所述第二微服务请求向所述第一微服务应用发送;
若所述第一通信代理判断出所述目标连接数量大于或等于所述预设连接数量,则所述第一通信代理不再将所述第二微服务请求向所述第一微服务应用发送,即所述第一通信代理停止向所述第一微服务应用继续发送所述第二微服务请求。
为更好的理解,以下结合具体示例进行示例性说明:
例如,所述第一微服务应用用于实现订单结算微服务业务,所述第二微服务应用用于实现购物车微服务业务,且所述配额管理策略所指示的预设连接数量为1000,则每一个用户在第二微服务应用上实现了购物车微服务业务后,该用户通过第二微服务请求触发第二微服务应用建立与第一微服务应用之间的一个连接,以使该用户通过该连接,实现在第一微服务应用上进行订单结算微服务业务的实现;
配置有配额管理策略的第一通信代理,可对第一微服务应用当前正常处理的第二微服务请求的数量进行统计,若所述第一微服务应用当前正在处理的第二微服务请求,即所述第一微服务应用当前正在处理的订单结算微服务业务的数量超过1000个,则说明当前已有超过1000个用户正在通过所述第一微服务应用实现订单结算微服务业务,则第一通信代理将不再允许新的所述第二微服务请求发送给所述第一微服务应用;可见,若此时有新的用户希望由购物车微服务业务跳转至订单结算微服务业务,则第一通信代理控制该新用户不能进行订单结算微服务业务。
若所述第二微服务应用当前正在处理的第二微服务请求,即所述第一微服务应用当前正在处理的订单结算微服务业务的数量小于1000,则说明当前有少于1000个用户正在通过所述第一微服务应用实现订单结算微服务业务,则所述第一通信代理将继续建立所述第一微服务应用和所述第二微服务应用之间的连接,即所述第一通信代理允许新的用户将所述第二微服务请求发送给所述第一微服务应用。
另一种示例,若所述目标控制面规则包括数据上报策略,所述数据上报策略用于连接后端基础设施,对所述后端基础设施的具体说明,请详见图4所示,具体不做赘述;
具体的,配置有所述数据上报策略的第一通信代理,若该数据上报策略与所述第一微服务请求对应,则所述第一通信代理接收到所述第一微服务请求的情况下,所述第一通信代理即可将所述第一微服务请求向所述后端基础设施上报,若该数据上报策略与所述第二微服务请求对应,则所述第一通信代理接收到所述第二微服务请求的情况下,所述第一通信代理即可将所述第二微服务请求向所述后端基础设施上报,对所述第一微服务请求和所述第二微服务请求的具体说明,请详见上述所示,具体不做赘述。
具体的,所述第一通信代理在接收到所述第一微服务请求后,可将第一微服务请求所包括的日志数据、监控数据等发送给所述后端基础设施,所述后端基础设施可通过第一通信代理发送的第一微服务请求所包括的日志数据、监控数据等实现对通信代理的跟踪和计费等功能。所述后端基础设施对所述第二微服务请求的处理过程,可参见上述所示的后端基础设施对所述第一微服务请求的处理过程,具体不做赘述。
另一种示例,若所述目标控制面规则包括Istio-Auth所具有的策略,则配置有Istio-Auth所具有的策略的第一通信代理根据已配置的安全策略对第二微服务请求所携带的安全证书进行鉴权,并基于安全策略判断是否允许与第一通信代理对应的第一微服务应用响应该第二微服务请求。
采用本实施例所示的方法,因可将控制面的控制面规则配置在数据面的通信代理上,从而缓解了控制面执行已配置在通信代理上的策略的资源,降低了控制面资源的耗费,而且因将控制面的配置在通信代理上,则通信代理基于该配置可执行控制面的功能,从而降低了通信代理向控制面所发送的信息的流量,降低了通信代理向控制面所发送的流量对控制面的冲击。而且有效的避免了控制面的未知故障(例如静默故障)扩散而影响业务的下发与运维。
而且采用本实施例所示的方法,在将控制面的相关的策略配置在服务网格中时,可仅在服务网格中随机选定一个通信代理,该通信代理可与不同的通信代理进行配置信息的交互,通信代理即可根据该通信代理本地所存储的配置信息和其他通信代理所发送的配置信息,确定出该通信代理的标识对应的控制面规则,可见,在策略的配置过程中,操作人员无需在众多的通信代理中选择特定的通信代理,即可实现对特定通信代理的策略的配置,提高了对通信代理进行策略配置的效率和准确性。
以通过本实施例所示的方法,使得通信代理配置有Mixer策略为例,现有技术中,Mixer用于承载数据面在具体通信的过程中不同的通信代理的通信桥梁、还承担通信代理与后端基础设施的通信桥梁,在具体通信的过程中,通信代理会向Mixer发送请求,Mixer根据请求实现通信代理和后端基础设施的通信以及不同的通信代理之间的通信,但是,当微服务请求巨大时,会出现大量的通信代理向Mixer发送大量微服务请求的情况,因每个微服务请求都需要通过Mixer进行路由,则会使得通信代理所发送的大量的微服务请求的流量会冲击Mixer,大量流量的冲击下,极易导致Mixer受到流量的冲击而出现故障,一旦Mixer出现故障,则通过已故障的Mixer,无法实现对通信代理所发送的微服务请求进行路由的目的,导致故障扩散。
而采用本实施例所示的方法,因可将Mixer策略配置在数据面的通信代理上,从而缓解了Mixer执行已配置在通信代理上的策略的资源,降低了Mixer资源的耗费,而且因将Mixer策略配置在通信代理上,则通信代理基于该配置可执行Mixer的至少部分策略,例如路由规则策略等,则通信代理可不经过Mixer即可实现通信代理和后端基础设施的通信以及不同的通信代理之间的通信,从而降低了通信代理向Mixer所发送的微服务请求的流量,降低了通信代理向Mixer所发送的微服务请求对Mixer的冲击,有效的避免业务的中断。
以下结合图9所示,对服务网格中有新的通信代理加入,或服务网格中有通信代理退出,如何在服务网格中实现全局一致性的过程,其中,全局一致性是指,所述服务网格中的所有通信代理所存储的目标对应关系均相同,所述目标对应关系是指,所述服务网格中所有的通信代理中每个通信代理的标识和控制面规则的对应关系。
步骤901、第一通信代理获取第一节点列表。
具体的,若本实施例所示的第一通信代理配置有服务注册与发现策略,则所述第一通信代理可通过服务注册与发现策略直接向注册中心服务器获取该第一节点列表,若本实施例所示的所述第一通信代理没有配置有服务注册与发现策略,该服务注册与发现策略保留在Pilot中,则由Pilot向注册中心服务器同步所述第一节点列表,并将已获取到的第一节点列表发送给第一通信代理,其中,所述第一节点列表包括第一时刻时所述服务网格所包括的所有通信代理的标识和与每一通信代理的标识对应的控制面规则。
具体的,因服务网格中的通信代理处于动态的状态,即经常有新的通信代理注册至所述注册中心服务器,也经常有旧的通信代理从服务网格中退出,退出的通信代理可向注册中心服务器发送退出指示信息,所述注册中心服务器即可根据该退出指示信息,在注册中心服务器所维护的节点列表中删除该退出指示信息所指示的通信代理以及该通信代理对应的控制面规则。
可见,不同的通信代理在不同的时刻向所述注册中心服务器获取节点列表时,因可能有新的通信代理的加入或有旧的通信代理的退出等情况,不同的通信代理可获取到不同的节点列表。
本实施例所示的第一通信代理所获取的第一节点列表为,所述注册中心服务器在第一时刻确定的服务网格所包括的所有通信代理的标识以及与每一通信代理的标识对应的控制面规则,对控制面规则的具体说明,请详见图5所示的实施例,具体在本实施例中不做赘述。
步骤902、第一通信代理接收第一配置信息。
本实施例所示的步骤902的具体执行过程,请详见图5所示的步骤501,具体执行过程,在本实施例中不做赘述。
本实施例所示的步骤901和步骤902之间无执行时序的先后限定。
步骤903、第一通信代向目标通信代理发送第一配置信息和第一节点列表。
在所述第一通信代理获取到所述第一配置和所述第一节点列表的情况下,所述第一通信代理可在所述第一节点列表中随机选择一个目标通信代理,其中,所述目标通信代理的标识位于所述第一节点列表中,且在所述服务网格中,所述目标通信代理为与所述第一通信代理互不相同的任一通信代理;
随后所述第一通信代理向已选定的目标通信代理发送所述第一配置信息和第一节点列表,所述第一通信代理在成功向已选定的目标通信代理发送了所述第一配置信息和所述第一节点列表的情况下,所述第一通信代理可在所述第一节点列表中再随机选择一个目标通信代理,随后继续向该目标通信代理发送所述第一配置信息和所述第一节点列表,直至所述第一通信代理将所述第一配置信息和所述第一节点列表发送给所述第一节点列表所包括的每个目标通信代理。
可选的,所述第一通信代理也可同时向所述第一节点列表所包括的所有目标通信代理发送所述第一配置信息和所述第一节点列表,具体在本实施例中不做限定,本实施例以所述第一通信代理在所述第一节点列表中随机选定的目标通信代理发送所述第一配置信息和所述第一节点列表为例进行示例性说明。
步骤904、目标通信代理从第一通信代理接收第一配置信息和第一节点列表。
步骤905、目标通信代理获取第二节点列表。
本实施例所示的目标通信代理获取所述第二节点列表的具体过程,请详见步骤901所示的所述第一通信代理获取所述第一节点列表的具体过程,具体在本实施例中不做赘述。
不同的通信代理在不同的时刻向所述注册中心服务器获取节点列表时,因可能有新的通信代理的加入或有旧的通信代理的退出等情况,不同的通信代理可获取到不同的节点列表。本实施例所示的第一通信代理所获取的第一节点列表为,所述注册中心服务器在第一时刻确定的服务网格所包括的所有通信代理的标识以及与每一通信代理的标识对应的控制面规则,本实施例所示的目标通信代理所获取到的第二节点列表为,所述注册中心服务器在第二时刻确定的服务网格所包括的所有通信代理的标识以及每一通信代理的标识对应的控制面规则。
本实施例对所述第一时刻和第二时刻之间,谁是更早的时刻不做限定,例如,若所述第一时刻早于所述第二时刻,则说明注册中心服务器生成所述第一节点列表的配置时间早于所述注册中心服务器生成所述第二节点列表的配置时间,此种情况说明所述第二节点列表所包括的所有通信代理的标识与服务网格当前所包括的所有通信代理的标识相同。又如,若所述第一时刻晚于所述第二时刻,则说明注册中心服务器生成所述第一节点列表的配置时间晚于所述注册中心服务器生成所述第二节点列表的配置时间。此种情况说明所述第一节点列表所包括的所有通信代理的标识与服务网格当前所包括的所有通信代理的标识相同。
具体例如,若第一时刻早于所述第二时刻,且所述第一通信代理所获取到的第一节点列表中包括有5个通信代理的标识,而目标通信代理所获取到的第二节点列表中包括有10个通信代理的标识,则说明在所述注册中心服务器生成有所述第一节点列表后,又有5个新的通信代理加入至服务网格中,从而使得注册中心服务器在第二时刻所生成的第二节点列表中,包括新加入的5个通信代理的标识;
又如,若第一时刻早于第二时刻,且所述第一通信代理所获取到的第一节点列表中包括有15个通信代理的标识,而目标通信代理所获取到的第二节点列表中包括有5个通信代理的标识,则说明在所述注册中心服务器生成有所述第一节点列表后,又有10个通信代理从服务网格中退出,从而使得注册中心服务器在第二时刻所生成的第二节点列表中,删除已退出的10个通信代理的标识。
需明确的是,本实施例所示的步骤904和步骤905之间并无执行时序先后的限定。
步骤906、目标通信代理向第一通信代理发送第二配置信息和第二节点列表。
步骤907、第一通信代理从目标通信代理接收第二配置信息和第二节点列表。
步骤908、第一通信代理确定更新后第一配置信息。
所述第一通信代理可根据第一通信代理本地所存储的第一配置信息和第一节点列表,以及根据所有所述目标通信代理所发送的第二配置信息和第二节点列表,对所述第一通信代理所存储的第一配置信息进行更新以获取到更新后第一配置信息,所述更新后的第一配置信息包括目标对应关系,所述目标对应关系包括所述服务网格所包括的每一通信代理的标识和该通信代理对应的控制面规则。
采用本实施例所示的方法,所述服务网格所包括的每个通信代理均执行上述步骤901至步骤908的过程,以使服务网格所包括的所有通信代理存储有相同的目标对应关系,以使服务网格实现了全局一致性。
以下对第一通信代理确定所述更新后第一配置信息的具体过程进行示例性说明:
一种可选的更新方式为:
第一通信代理根据所述第一节点列表与所述第二节点列表确定第一目标通信代理,其中,所述第一目标通信代理是指,该第一目标通信代理的标识设置于所述第一节点列表中,且第一目标通信代理的标识不设置于所述第二节点列表中,此种情况说明对于本实施例所示对所述第一通信代理而言,所述服务网格中的第一目标通信代理已从服务网格中退出,为实现服务网格的全局一致性,则所述第一通信代理在本地所存储的目标对应关系中,删除所述第一目标通信代理的标识与控制面规则的对应关系。
另一种可选的更新方式为:
第一通信代理根据所述第一节点列表与所述第二节点列表确定第二目标通信代理,其中,所述第二目标通信代理是指,该第二目标通信代理的标识不设置于所述第一节点列表中,且第二目标通信代理的标识设置于所述第二节点列表中,此种情况说明对于本实施例所示的第一通信代理而言,所述第一通信代理所位于的服务网格中新增加了一个通信代理,即所述第二目标通信代理,为实现服务网格的全局一致性,则所述第一通信代理在本地所存储的目标对应关系中,增加所述第二目标通信代理的标识与控制面规则的对应关系。
另一种可选的更新方式为:
所述第一通信代理根据所述第一节点列表和所述第二节点列表确定出第三目标通信代理,本实施例所示的第三目标通信代理是指,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;此种情况说明,第一通信代理所存储的目标对应关系中以及目标通信代理所存储的目标对应关系中,均包括有该第三目标通信代理的标识和控制面规则的对应关系;
在本种示例下,所述第一通信代理判断第一对应关系的版本标识是否新于第二对应关系的版本标识,其中,所述第一对应关系为所述第一配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系,所述第二对应关系为所述第二配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系;
具体的,所述版本标识可为版本号、版本的时间戳等数值,则所述第一通信代理可判断所述第一对应关系所包括的时间戳和/或版本号是否新于所述第二对应关系所包括的时间戳和/或版本号,若是,则所述第一通信代理确定所述第一对应关系的版本标识新于所述第二对应关系的版本标识,若否,则所述第一通信代理确定所述第二对应关系的版本标识新于所述第一对应关系的版本标识。
在所述第一通信代理确定出所述第一对应关系的版本标识新于所述第二对应关系的版本标识,则所述第一通信代理确定所述更新后第一配置信息包括所述第一对应关系;
在所述第一通信代理确定出所述第二对应关系的版本标识新于所述第一对应关系的版本标识,则所述第一通信代理将原先存储于所述第一配置信息中的所述第一对应关系删除,将所述第二对应关系设置于所述第一配置信息中以形成所述更新后第一配置信息,以使所述更新后第一配置信息包括有第二对应关系。
若本实施例中,所述第一配置信息用于指示至少一项控制面规则,而第二配置信息用于指示目标通信代理未配置控制面规则,则在此种示例下,所述第一配置信息新于所述第二配置信息,则所述通信代理保持所述第一配置信息所指示的策略不变。
如上述步骤903所示可知,本实施例以第一通信代理在第一节点列表中随机选择的目标通信代理为例,则通过步骤903至步骤908所示针对该随机选定的目标通信代理对第一通信代理本地所存储的更新后第一配置信息所包括的所述目标对应关系进行更新后,所述第一通信代理可返回步骤903,再次随机选定一个目标通信代理以将更新后第一配置信息向所选定的目标通信代理进行发送,以进行第一配置信息的更新过程,具体更新过程请详见步骤903至步骤908所示,具体执行过程不做赘述,直至所述服务网格中所有通信代理所存储的目标对应关系均相同,以实现服务网格的全局一致性。
本实施例中,服务网格中不同的通信代理之间传输的配置信息和节点列表的方式可通过去中心化网络协议进行配置信息的交互,本实施例对所述去中心化网络协议的具体协议类型不做限定,只要不同的通信代理之间可成功的进行配置信息和节点列表的交互即可,本实施例以去中心化网络协议为流行病协议(gossip protocol)为例进行示例性说明。
本实施例采用gossip protocol实现不同的通信代理之间配置信息和节点列表的交互的有益效果在于,服务网格中可以允许通信代理的任意增加和减少,新增加的通信代理所存储的目标对应关系的最终状态与服务网格中每一通信代理所存储的目标对应关系一致,从而使得服务网格具有可扩展性;服务网格中任何通信代理所位于的主机的宕机和重启都不会影响信息的传播,从而使得服务网格具有一定的容错性;gossip protocol不要求服务网格中任何起到管理作用的通信代理,即不同的通信代理之间是对等的,服务网格中的任一通信代理无需知道整个服务网格的整个网络状况,只要不同的通信代理之间是相互连通的,则服务网格中的任一通信代理即可将配置信息和节点列表散播到服务网格中的每一通信代理中,从而具有去中心化的优势;而且通过gossip protocol所传输配置信息和节点列表在服务网格中,会以一传十,十传百一样的指数级速度在服务网格中快速传播,因此不同的通信代理所存储的目的对应关系的不一致可以在很快的时间内收敛到一致,提高了实现服务网格全局一致性的效率。
采用本实施例所示的方法,因可将控制面规则配置在数据面的通信代理上,实现了控制面和数据面之间的解耦,从而缓解了控制面执行已配置在通信代理上的控制面规则的资源,降低了控制面资源的耗费,而且因将控制面的功能配置在通信代理上,则通信代理基于该配置可执行控制面规则,从而降低了通信代理向控制面所发送的流量,降低了通信代理向控制面所发送的流量对控制面的冲击,有效的避免业务的中断,且服务网格不会因数据面的流量冲高而挂死。而且有效的避免了服务网格控制面的未知故障(例如静默故障)扩散而影响业务的下发与运维。
而且采用本实施例所示的方法,在将控制面的功能相关的策略配置在服务网格中时,可仅在服务网格中随机选定一个通信代理,在该通信代理根据第一配置信息进行策略的配置后,该通信代理与目标通信代理之间进行配置信息和节点列表的交互,以实现服务网格的全局一致性,提高了对通信代理进行策略配置的效率。
以下基于图10所示对本实施例所提供的通信代理的具体结构进行示例性说明,其中,图10所示的通信代理用于执行上述实施例所示的去中心化处理的方法,且在执行上述实施例所示的去中心化处理方法的过程中,所述通信代理作为第一通信代理以执行所述去中心化处理的方法,具体执行过程以及有益效果的说明,请详见上述实施例所示,具体在本实施例中不做赘述。
如图10所示,所述通信代理包括:
接收单元1001,用于接收第一微服务应用发送的第一微服务请求,所述第一微服务应用为与所述第一通信代理对应的微服务应用;
确定单元1002,用于根据目标控制面规则确定与所述第一微服务请求对应的微服务访问地址,所述目标控制面规则包括路由规则策略,所述路由规则策略包括所述第一微服务请求和所述微服务访问地址的对应关系,所述微服务访问地址为第二通信代理的地址,所述第二通信代理对应于第二微服务应用,所述第二微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同;
发送单元1003,用于向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求,所述第二通信代理用于将所述第一微服务请求转发给所述第二微服务应用。
可选的,所述第一微服务请求的数量和所述微服务访问地址的数量均为多个,所述目标控制面规则还包括与所述第一微服务请求对应的流量拆分策略,所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的比例;
所述发送单元1003具体用于,根据所述流量拆分策略,将多个所述第一微服务请求,向每个所述微服务访问地址发送所述第一微服务请求。
可选的,同一所述第一微服务请求对应的所述微服务访问地址的数量有多个,所述目标控制面规则还包括与所述第一微服务请求对应的负载均衡策略;
所述发送单元1003具体用于,根据所述负载均衡策略,在多个所述微服务访问地址中确定目标微服务访问地址,并向具有所述目标微服务访问地址的所述第二通信代理发送所述第一微服务请求。
可选的,所述目标控制面规则还包括预设响应时长;
所述发送单元1003还用于,确定条件是所述预设响应时长内未接收到所述第二通信代理发送的成功响应消息,则将所述第一微服务请求发送给第三通信代理,所述成功响应消息用于指示所述第二通信代理成功接收到所述第一微服务请求,所述第三通信代理用于将所述第一微服务请求转发给与所述第三通信代理对应的第三微服务应用,所述第三微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同。
可选的,所述目标控制面规则还包括与所述第一微服务请求对应的数据上报策略,所述数据上报策略用于连接后端基础设施;
所述发送单元1003还用于,根据所述数据上报策略,将所述第一微服务请求发送给所述后端基础设施,所述后端基础设施用于对已接收到的所述第一微服务请求进行监控。
可选的,所述接收单元1001还用于,接收第二微服务请求,所述第二微服务请求所请求的微服务业务与所述第一微服务应用所支持的微服务业务相同;
所述发送单元1003还用于,确定条件是所述第二微服务请求所包括的验证信息与所述预设验证信息相同,则将所述第二微服务请求转发给所述第一微服务应用。
可选的,所述目标控制面规则还包括与所述第二微服务请求对应的配额管理策略,所述配额管理策略用于指示预设连接数量;
所述发送单元1003还用于,获取目标连接数量,所述目标连接数量为所述第一微服务应用当前正在处理的所述第二微服务请求的数量,确定条件是所述目标连接数量小于所述预设连接数量,则向所述第一微服务应用发送所述第二微服务请求。
可选的,所述接收单元1001还用于,获取所述第一通信代理已存储的第一配置信息;
所述接收单元1001还用于,接收至少一个目标通信代理发送的第二配置信息,所述目标通信代理为所述微服务系统中与所述第一通信代理不相同的通信代理,所述第一配置信息和至少一个所述第二配置信息中,至少一个包括所述第一通信代理的标识和控制面规则的对应关系;
所述确定单元1002还用于,根据所述第一配置信息和至少一个所述第二配置信息确定所述目标控制面规则,所述目标控制面规则为与所述第一通信代理的标识对应的控制面规则。
可选的,所述接收单元1001还用于,获取已存储的第一节点列表;
所述接收单元1001还用于,从所述至少一个目标通信代理接收第二节点列表,所述第一节点列表和至少一个所述第二节点列表中,至少一个包括所述微服务系统中的每个通信代理的标识;
所述确定单元1002还用于,根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息,所述更新后第一配置信息包括所述微服务系统中的每个通信代理的标识与控制面规则的对应关系。
可选的,所述确定单元1002包括:
第一确定模块10021,用于确定第一目标通信代理,所述第一节点列表中包括所述第一目标通信代理的标识且所述第二节点列表中不包括所述第一目标通信代理的标识;
第二确定模块10022,用于根据所述第一目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中删除所述第一目标通信代理的标识与控制面规则的对应关系后所生成的信息。
可选的,所述确定单元1002包括:
第三确定模块10023,用于确定第二目标通信代理,所述第一节点列表中不包括所述第二目标通信代理的标识且所述第二节点列表中包括所述第一目标通信代理的标识;
第四确定模块10024,用于根据所述第二目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中增加所述第二目标通信代理的标识与控制面规则的对应关系后所生成的信息。
可选的,所述确定单元1002包括:
第五确定模块10025,用于确定第三目标通信代理,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;
第六确定模块10026,用于确定条件是第一对应关系的版本标识新于第二对应关系的版本标识,则确定所述更新后第一配置信息包括所述第一对应关系,所述第一对应关系为所述第一配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系,所述第二对应关系为所述第二配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系;
第七确定模块10027,用于确定条件是第二对应关系的版本标识新于第一对应关系的版本标识,则确定所述更新后第一配置信息包括所述第二对应关系。
以下结合图11所示对本实施例所示的主机的具体结构进行示例性说明,本实施例所示的主机用于执行上述实施例所示的去中心化处理的方法,具体执行过程,请详见上书房实施例所示,具体在本实施例中不做赘述。主机可以承载多个微服务应用和通信代理。
如图11所示,如图11所示,为执行本发明中主机1102功能的计算机硬件结构,主机1102包括至少一个处理器1101,通信总线1102,存储器1103以及至少一个通信接口1104。
处理器1101可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线1102可包括一通路,在上述组件之间传送信息。
通信接口1104,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器1103可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1103用于存储第一计算机可读程序11031和第二计算机可读程序11032,在所述处理器1101执行所述第一计算机可读程序11031时,所述处理器1101用于实现用于提供微服务业务的微服务应用的相关功能,在所述处理器1101执行所述第二计算机可读程序11032时,所述处理器1101用于实现上述实施例所示的通信代理的相关功能,具体执行过程,请详见上述实施例所示,具体在本实施例中不做赘述。
在具体实现中,作为一种实施例,处理器1101可以包括一个或多个CPU,例如图11中的CPU0和CPU1。
在具体实现中,作为一种实施例,主机1102可以包括多个处理器,例如图11中的处理器1101和处理器1108。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,主机1102还可以包括输出设备1105和输入设备1106。输出设备1105和处理器1101通信,可以以多种方式来显示信息。上述的主机1102可以是一个通用计算机设备或者是一个专用计算机设备。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (27)
1.一种去中心化处理的方法,其特征在于,所述方法包括:
微服务系统中的第一通信代理接收第一微服务应用发送的第一微服务请求,所述第一微服务应用为与所述第一通信代理对应的微服务应用;
所述第一通信代理根据目标控制面规则确定与所述第一微服务请求对应的微服务访问地址,所述目标控制面规则包括路由规则策略,所述路由规则策略包括所述第一微服务请求和所述微服务访问地址的对应关系,所述微服务访问地址为第二通信代理的地址,所述第二通信代理对应于第二微服务应用,所述第二微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同;
所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求,所述第二通信代理用于将所述第一微服务请求转发给所述第二微服务应用。
2.根据权利要求1所述的方法,其特征在于,所述第一微服务请求的数量和所述微服务访问地址的数量均为多个,所述目标控制面规则还包括与所述第一微服务请求对应的流量拆分策略,所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的比例;
所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求包括:
所述第一通信代理根据所述流量拆分策略,将多个所述第一微服务请求,向每个所述微服务访问地址发送所述第一微服务请求。
3.根据权利要求1所述的方法,其特征在于,同一所述第一微服务请求对应的所述微服务访问地址的数量有多个,所述目标控制面规则还包括与所述第一微服务请求对应的负载均衡策略;
所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求包括:
所述第一通信代理根据所述负载均衡策略,在多个所述微服务访问地址中确定目标微服务访问地址,并向具有所述目标微服务访问地址的所述第二通信代理发送所述第一微服务请求。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述目标控制面规则还包括预设响应时长;
所述第一通信代理向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求之后,所述方法还包括:
所述第一通信代理确定条件是所述预设响应时长内未接收到所述第二通信代理发送的成功响应消息,则将所述第一微服务请求发送给第三通信代理,所述成功响应消息用于指示所述第二通信代理成功接收到所述第一微服务请求,所述第三通信代理用于将所述第一微服务请求转发给与所述第三通信代理对应的第三微服务应用,所述第三微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述目标控制面规则还包括与所述第一微服务请求对应的数据上报策略,所述数据上报策略用于连接后端基础设施;
所述第一通信代理接收第一微服务应用发送的第一微服务请求之后,所述方法还包括:
所述第一通信代理根据所述数据上报策略,将所述第一微服务请求发送给所述后端基础设施,所述后端基础设施用于对已接收到的所述第一微服务请求进行监控。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述第一通信代理接收第二微服务请求,所述第二微服务请求所请求的微服务业务与所述第一微服务应用所支持的微服务业务相同;
所述第一通信代理确定条件是所述第二微服务请求所包括的验证信息与所述预设验证信息相同,则将所述第二微服务请求转发给所述第一微服务应用。
7.根据权利要求6所述的方法,其特征在于,所述目标控制面规则还包括与所述第二微服务请求对应的配额管理策略,所述配额管理策略用于指示预设连接数量;
所述第一通信代理将所述第二微服务请求转发给所述第一微服务应用包括:
所述第一通信代理获取目标连接数量,所述目标连接数量为所述第一微服务应用当前正在处理的所述第二微服务请求的数量;
所述第一通信代理确定条件是所述目标连接数量小于所述预设连接数量,则向所述第一微服务应用发送所述第二微服务请求。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
所述第一通信代理获取所述第一通信代理已存储的第一配置信息;
所述第一通信代理接收至少一个目标通信代理发送的第二配置信息,所述目标通信代理为所述微服务系统中与所述第一通信代理不相同的通信代理,所述第一配置信息和至少一个所述第二配置信息中,至少一个包括所述第一通信代理的标识和控制面规则的对应关系;
所述第一通信代理根据所述第一配置信息和至少一个所述第二配置信息确定所述目标控制面规则,所述目标控制面规则为与所述第一通信代理的标识对应的控制面规则。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述第一通信代理获取已存储的第一节点列表;
所述第一通信代理从所述至少一个目标通信代理接收第二节点列表,所述第一节点列表和至少一个所述第二节点列表中,至少一个包括所述微服务系统中的每个通信代理的标识;
所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息,所述更新后第一配置信息包括所述微服务系统中的每个通信代理的标识与控制面规则的对应关系。
10.根据权利要求9所述的方法,其特征在于,所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息包括:
所述第一通信代理确定第一目标通信代理,所述第一节点列表中包括所述第一目标通信代理的标识且所述第二节点列表中不包括所述第一目标通信代理的标识;
所述第一通信代理根据所述第一目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中删除所述第一目标通信代理的标识与控制面规则的对应关系后所生成的信息。
11.根据权利要求9所述的方法,其特征在于,所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息包括:
所述第一通信代理确定第二目标通信代理,所述第一节点列表中不包括所述第二目标通信代理的标识且所述第二节点列表中包括所述第一目标通信代理的标识;
所述第一通信代理根据所述第二目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中增加所述第二目标通信代理的标识与控制面规则的对应关系后所生成的信息。
12.根据权利要求9所述的方法,其特征在于,所述第一通信代理根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息包括:
所述第一通信代理确定第三目标通信代理,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;
所述第一通信代理确定条件是第一对应关系的版本标识新于第二对应关系的版本标识,则确定所述更新后第一配置信息包括所述第一对应关系,所述第一对应关系为所述第一配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系,所述第二对应关系为所述第二配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系;
所述第一通信代理确定条件是第二对应关系的版本标识新于第一对应关系的版本标识,则确定所述更新后第一配置信息包括所述第二对应关系。
13.一种通信代理,其特征在于,所述通信代理为微服务系统中的第一通信代理,所述通信代理包括:
接收单元,用于接收第一微服务应用发送的第一微服务请求,所述第一微服务应用为与所述第一通信代理对应的微服务应用;
确定单元,用于根据目标控制面规则确定与所述第一微服务请求对应的微服务访问地址,所述目标控制面规则包括路由规则策略,所述路由规则策略包括所述第一微服务请求和所述微服务访问地址的对应关系,所述微服务访问地址为第二通信代理的地址,所述第二通信代理对应于第二微服务应用,所述第二微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同;
发送单元,用于向具有所述微服务访问地址的所述第二通信代理发送所述第一微服务请求,所述第二通信代理用于将所述第一微服务请求转发给所述第二微服务应用。
14.根据权利要求13所述的通信代理,其特征在于,所述第一微服务请求的数量和所述微服务访问地址的数量均为多个,所述目标控制面规则还包括与所述第一微服务请求对应的流量拆分策略,所述流量拆分策略用于指示向每个所述微服务访问地址发送所述第一微服务请求的比例;
所述发送单元具体用于,根据所述流量拆分策略,将多个所述第一微服务请求,向每个所述微服务访问地址发送所述第一微服务请求。
15.根据权利要求13所述的通信代理,其特征在于,同一所述第一微服务请求对应的所述微服务访问地址的数量有多个,所述目标控制面规则还包括与所述第一微服务请求对应的负载均衡策略;
所述发送单元具体用于,根据所述负载均衡策略,在多个所述微服务访问地址中确定目标微服务访问地址,并向具有所述目标微服务访问地址的所述第二通信代理发送所述第一微服务请求。
16.根据权利要求13至15任一项所述的通信代理,其特征在于,所述目标控制面规则还包括预设响应时长;
所述发送单元还用于,确定条件是所述预设响应时长内未接收到所述第二通信代理发送的成功响应消息,则将所述第一微服务请求发送给第三通信代理,所述成功响应消息用于指示所述第二通信代理成功接收到所述第一微服务请求,所述第三通信代理用于将所述第一微服务请求转发给与所述第三通信代理对应的第三微服务应用,所述第三微服务应用所支持的微服务业务与所述第一微服务请求所请求的微服务业务相同。
17.根据权利要求13至16任一项所述的通信代理,其特征在于,所述目标控制面规则还包括与所述第一微服务请求对应的数据上报策略,所述数据上报策略用于连接后端基础设施;
所述发送单元还用于,根据所述数据上报策略,将所述第一微服务请求发送给所述后端基础设施,所述后端基础设施用于对已接收到的所述第一微服务请求进行监控。
18.根据权利要求13至17任一项所述的通信代理,其特征在于,
所述接收单元还用于,接收第二微服务请求,所述第二微服务请求所请求的微服务业务与所述第一微服务应用所支持的微服务业务相同;
所述发送单元还用于,确定条件是所述第二微服务请求所包括的验证信息与所述预设验证信息相同,则将所述第二微服务请求转发给所述第一微服务应用。
19.根据权利要求18所述的通信代理,其特征在于,所述目标控制面规则还包括与所述第二微服务请求对应的配额管理策略,所述配额管理策略用于指示预设连接数量;
所述发送单元还用于,获取目标连接数量,所述目标连接数量为所述第一微服务应用当前正在处理的所述第二微服务请求的数量,确定条件是所述目标连接数量小于所述预设连接数量,则向所述第一微服务应用发送所述第二微服务请求。
20.根据权利要求13至19任一项所述的通信代理,其特征在于,
所述接收单元还用于,获取所述第一通信代理已存储的第一配置信息;
所述接收单元还用于,接收至少一个目标通信代理发送的第二配置信息,所述目标通信代理为所述微服务系统中与所述第一通信代理不相同的通信代理,所述第一配置信息和至少一个所述第二配置信息中,至少一个包括所述第一通信代理的标识和控制面规则的对应关系;
所述确定单元还用于,根据所述第一配置信息和至少一个所述第二配置信息确定所述目标控制面规则,所述目标控制面规则为与所述第一通信代理的标识对应的控制面规则。
21.根据权利要求20所述的通信代理,其特征在于,
所述接收单元还用于,获取已存储的第一节点列表;
所述接收单元还用于,从所述至少一个目标通信代理接收第二节点列表,所述第一节点列表和至少一个所述第二节点列表中,至少一个包括所述微服务系统中的每个通信代理的标识;
所述确定单元还用于,根据所述第一节点列表和所述第二节点列表确定更新后第一配置信息,所述更新后第一配置信息包括所述微服务系统中的每个通信代理的标识与控制面规则的对应关系。
22.根据权利要求21所述的通信代理,其特征在于,所述确定单元包括:
第一确定模块,用于确定第一目标通信代理,所述第一节点列表中包括所述第一目标通信代理的标识且所述第二节点列表中不包括所述第一目标通信代理的标识;
第二确定模块,用于根据所述第一目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中删除所述第一目标通信代理的标识与控制面规则的对应关系后所生成的信息。
23.根据权利要求21所述的通信代理,其特征在于,所述确定单元包括:
第三确定模块,用于确定第二目标通信代理,所述第一节点列表中不包括所述第二目标通信代理的标识且所述第二节点列表中包括所述第一目标通信代理的标识;
第四确定模块,用于根据所述第二目标通信代理确定所述更新后第一配置信息,所述更新后第一配置信息为在所述第一配置信息中增加所述第二目标通信代理的标识与控制面规则的对应关系后所生成的信息。
24.根据权利要求21所述的通信代理,其特征在于,所述确定单元包括:
第五确定模块,用于确定第三目标通信代理,所述第一节点列表和所述第二节点列表中均包括所述第三目标通信代理的标识;
第六确定模块,用于确定条件是第一对应关系的版本标识新于第二对应关系的版本标识,则确定所述更新后第一配置信息包括所述第一对应关系,所述第一对应关系为所述第一配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系,所述第二对应关系为所述第二配置信息所包括的所述第三目标通信代理的标识与控制面规则的对应关系;
第七确定模块,用于确定条件是第二对应关系的版本标识新于第一对应关系的版本标识,则确定所述更新后第一配置信息包括所述第二对应关系。
25.一种主机,其特征在于,包括处理器和存储器,其中,
所述存储器中存有第一计算机可读程序和第二计算机可读程序;所述处理器通过运行所述存储器中的第一计算机可读程序,以执行用于提供微服务业务的微服务应用的功能,所述处理器通过运行所述存储器中的第二计算机可读程序,以用于完成上述权利要求1至12任一项所述的方法。
26.一种计算机程序产品,其特征在于,当所述计算机产品被执行时,其用于执行上述权利要求1至12任一项所述的方法。
27.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令用于执行上述权利要求1至12任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910527161.9A CN110401696B (zh) | 2019-06-18 | 2019-06-18 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
PCT/CN2020/096846 WO2020253786A1 (zh) | 2019-06-18 | 2020-06-18 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
EP20826187.5A EP3979592A4 (en) | 2019-06-18 | 2020-06-18 | Decentralization processing method, communication proxy, host and storage medium |
US17/554,724 US11677860B2 (en) | 2019-06-18 | 2021-12-17 | Decentralization processing method, communication proxy, host, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910527161.9A CN110401696B (zh) | 2019-06-18 | 2019-06-18 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110401696A true CN110401696A (zh) | 2019-11-01 |
CN110401696B CN110401696B (zh) | 2020-11-06 |
Family
ID=68323271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910527161.9A Active CN110401696B (zh) | 2019-06-18 | 2019-06-18 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11677860B2 (zh) |
EP (1) | EP3979592A4 (zh) |
CN (1) | CN110401696B (zh) |
WO (1) | WO2020253786A1 (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111124798A (zh) * | 2019-11-07 | 2020-05-08 | 北京海益同展信息科技有限公司 | 数据监控方法、系统、设备及存储介质 |
CN111245918A (zh) * | 2020-01-07 | 2020-06-05 | 微民保险代理有限公司 | 一种服务请求的传输方法和装置 |
CN111510480A (zh) * | 2020-04-08 | 2020-08-07 | 北京百度网讯科技有限公司 | 一种请求发送方法、装置以及第一服务器 |
CN111586135A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 云部署微服务应用系统及其数据传输方法、装置和设备 |
CN111600930A (zh) * | 2020-04-09 | 2020-08-28 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
CN111741120A (zh) * | 2020-07-01 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 一种流量镜像方法、装置及设备 |
CN111917838A (zh) * | 2020-07-14 | 2020-11-10 | 浙江大华技术股份有限公司 | 基于微服务的处理方法及装置、存储介质、电子装置 |
WO2020253786A1 (zh) * | 2019-06-18 | 2020-12-24 | 华为技术有限公司 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
CN112261095A (zh) * | 2020-10-12 | 2021-01-22 | 国电南瑞科技股份有限公司 | 基于两级代理的负载分流实现系统及方法 |
CN112311894A (zh) * | 2020-11-12 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于生成信息的方法、装置、电子设备和计算机可读介质 |
CN112333096A (zh) * | 2020-10-16 | 2021-02-05 | 济南浪潮数据技术有限公司 | 一种微服务流量调度方法及相关组件 |
CN112492060A (zh) * | 2020-11-18 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务资源处理方法及系统、代理设备、请求设备 |
CN112491634A (zh) * | 2020-12-21 | 2021-03-12 | 北京云思畅想科技有限公司 | 一种微服务场景下全链路智能故障模拟及评估防御方法 |
CN112637124A (zh) * | 2020-11-23 | 2021-04-09 | 中信银行股份有限公司 | 报文的处理方法、装置、电子设备及计算机可读存储介质 |
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113315708A (zh) * | 2021-07-29 | 2021-08-27 | 数字广东网络建设有限公司 | 栅格化网关的实现系统、方法、计算机设备和存储介质 |
CN113364775A (zh) * | 2021-06-04 | 2021-09-07 | 北京京东振世信息技术有限公司 | 微服务的调用方法、装置及服务器 |
CN113395310A (zh) * | 2020-03-12 | 2021-09-14 | 华为技术有限公司 | 一种微服务调用方法、装置、设备及介质 |
CN113472889A (zh) * | 2021-07-08 | 2021-10-01 | 上海浦东发展银行股份有限公司 | 微服务的调度系统及方法 |
CN113630283A (zh) * | 2020-05-08 | 2021-11-09 | 网联清算有限公司 | 一种服务链路测试方法及系统 |
CN113765944A (zh) * | 2020-06-01 | 2021-12-07 | 中移(苏州)软件技术有限公司 | 一种微服务治理方法、装置、设备和存储介质 |
WO2022033037A1 (zh) * | 2020-08-13 | 2022-02-17 | 华为技术有限公司 | 一种消息管理的方法、装置及去服务器化系统 |
CN114172958A (zh) * | 2021-11-19 | 2022-03-11 | 云从科技集团股份有限公司 | 隐私计算节点、系统、方法、装置以及存储介质 |
WO2022068756A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为云计算技术有限公司 | 基于微服务的服务网格系统及服务治理方法 |
CN114449040A (zh) * | 2022-01-28 | 2022-05-06 | 杭州迪普科技股份有限公司 | 基于云平台的配置下发方法及装置 |
CN114513557A (zh) * | 2021-12-21 | 2022-05-17 | 上海赛可出行科技服务有限公司 | 一种金融系统发布业务不中断的微服务通信方法 |
CN114615267A (zh) * | 2022-03-15 | 2022-06-10 | 中国银行股份有限公司 | 银行系统接入私有云的系统及方法 |
CN114615321A (zh) * | 2022-03-25 | 2022-06-10 | 度小满科技(北京)有限公司 | 流量处理方法和装置 |
CN114650317A (zh) * | 2020-12-15 | 2022-06-21 | 中国移动通信有限公司研究院 | 一种微服务系统以及微服务注册、发现和保活方法 |
CN116566984A (zh) * | 2023-07-06 | 2023-08-08 | 华控清交信息科技(北京)有限公司 | 一种k8s容器集群的路由信息创建方法、装置及电子设备 |
WO2024066503A1 (zh) * | 2022-09-27 | 2024-04-04 | 华为云计算技术有限公司 | 服务调用方法及装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11582291B2 (en) * | 2017-07-28 | 2023-02-14 | Kong Inc. | Auto-documentation for application program interfaces based on network requests and responses |
US11770377B1 (en) * | 2020-06-29 | 2023-09-26 | Cyral Inc. | Non-in line data monitoring and security services |
US11601471B2 (en) * | 2020-10-02 | 2023-03-07 | Cisco Technology, Inc. | Integrated service mesh control plane management |
CN112887279B (zh) * | 2021-01-13 | 2023-03-10 | 太平金融科技服务(上海)有限公司 | 微服务调用方法、装置、计算机设备和存储介质 |
CN114125035B (zh) * | 2021-09-27 | 2023-08-08 | 烽火通信科技股份有限公司 | 一种大规模扩容场景下服务注册方法与装置 |
US20220224637A1 (en) * | 2022-04-01 | 2022-07-14 | Deepak S | Methods and apparatus for traffic control for application-independent service mesh |
CN115269612B (zh) * | 2022-09-26 | 2022-12-13 | 公安部信息通信中心 | 一种基于微服务的跨平台多维数据融合系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656630A (zh) * | 2017-01-13 | 2017-05-10 | 北京中电普华信息技术有限公司 | 一种电力营销业务应用系统及其构建方法、平台 |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
CN108712464A (zh) * | 2018-04-13 | 2018-10-26 | 中国科学院信息工程研究所 | 一种面向集群微服务高可用的实现方法 |
US10136296B1 (en) * | 2018-03-22 | 2018-11-20 | Coolfire Solutions, Inc. | Situational awareness systems and methods |
CN108881121A (zh) * | 2017-05-12 | 2018-11-23 | 慧荣兴科技成都有限公司 | 一种基于移动互联网的p2p信用互看系统及方法 |
US10158672B2 (en) * | 2015-03-13 | 2018-12-18 | Varmour Networks, Inc. | Context aware microsegmentation |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108206852B (zh) * | 2016-12-20 | 2020-12-22 | 华为技术有限公司 | 一种微服务框架下的基于会话的服务实例管理方法及设备 |
US10574736B2 (en) * | 2017-01-09 | 2020-02-25 | International Business Machines Corporation | Local microservice development for remote deployment |
CN107181815A (zh) * | 2017-06-13 | 2017-09-19 | 北京中电普华信息技术有限公司 | 一种微应用和微服务交互方法、微应用和系统 |
US10581873B2 (en) * | 2017-07-11 | 2020-03-03 | Cisco Technology, Inc. | Securing micro-services |
US10855793B2 (en) * | 2017-09-25 | 2020-12-01 | Splunk Inc. | Proxying hypertext transfer protocol (HTTP) requests for microservices |
US10791056B2 (en) * | 2018-04-16 | 2020-09-29 | Citrix Systems, Inc. | Policy based service routing |
CN109246246B (zh) * | 2018-10-31 | 2021-03-19 | 成都知道创宇信息技术有限公司 | 一种中心化全自动服务发现负载均衡系统 |
US11444924B2 (en) * | 2019-01-09 | 2022-09-13 | Cisco Technology, Inc. | Application-layer service traffic communication using datacenter network fabric as proxy |
US11153405B2 (en) * | 2019-04-08 | 2021-10-19 | Red Hat, Inc. | Transparent pattern processing in a service mesh |
US10938923B2 (en) * | 2019-04-17 | 2021-03-02 | Home Depot Product Authority, Llc | Customizable router for managing traffic between application programming interfaces |
US10764244B1 (en) * | 2019-06-12 | 2020-09-01 | Cisco Technology, Inc. | Systems and methods providing a multi-cloud microservices gateway using a sidecar proxy |
CN110401696B (zh) * | 2019-06-18 | 2020-11-06 | 华为技术有限公司 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
US11139991B2 (en) * | 2019-09-28 | 2021-10-05 | Intel Corporation | Decentralized edge computing transactions with fine-grained time coordination |
US10827020B1 (en) * | 2019-10-03 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | Assignment of microservices |
US11240146B2 (en) * | 2019-10-30 | 2022-02-01 | Kabushiki Kaisha Toshiba | Service request routing |
-
2019
- 2019-06-18 CN CN201910527161.9A patent/CN110401696B/zh active Active
-
2020
- 2020-06-18 WO PCT/CN2020/096846 patent/WO2020253786A1/zh unknown
- 2020-06-18 EP EP20826187.5A patent/EP3979592A4/en not_active Withdrawn
-
2021
- 2021-12-17 US US17/554,724 patent/US11677860B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10158672B2 (en) * | 2015-03-13 | 2018-12-18 | Varmour Networks, Inc. | Context aware microsegmentation |
CN106656630A (zh) * | 2017-01-13 | 2017-05-10 | 北京中电普华信息技术有限公司 | 一种电力营销业务应用系统及其构建方法、平台 |
CN108881121A (zh) * | 2017-05-12 | 2018-11-23 | 慧荣兴科技成都有限公司 | 一种基于移动互联网的p2p信用互看系统及方法 |
CN107766205A (zh) * | 2017-10-10 | 2018-03-06 | 武汉大学 | 一种面向微服务调用过程跟踪的监控系统及方法 |
US10136296B1 (en) * | 2018-03-22 | 2018-11-20 | Coolfire Solutions, Inc. | Situational awareness systems and methods |
CN108712464A (zh) * | 2018-04-13 | 2018-10-26 | 中国科学院信息工程研究所 | 一种面向集群微服务高可用的实现方法 |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11677860B2 (en) | 2019-06-18 | 2023-06-13 | Huawei Technologies Co., Ltd. | Decentralization processing method, communication proxy, host, and storage medium |
WO2020253786A1 (zh) * | 2019-06-18 | 2020-12-24 | 华为技术有限公司 | 一种去中心化处理的方法、通信代理、主机以及存储介质 |
CN111124798A (zh) * | 2019-11-07 | 2020-05-08 | 北京海益同展信息科技有限公司 | 数据监控方法、系统、设备及存储介质 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111092816B (zh) * | 2019-11-26 | 2022-02-15 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111245918A (zh) * | 2020-01-07 | 2020-06-05 | 微民保险代理有限公司 | 一种服务请求的传输方法和装置 |
CN113395310A (zh) * | 2020-03-12 | 2021-09-14 | 华为技术有限公司 | 一种微服务调用方法、装置、设备及介质 |
EP4113933A4 (en) * | 2020-03-12 | 2023-06-21 | Huawei Cloud Computing Technologies Co., Ltd. | METHOD AND APPARATUS FOR CALLING MICROSERVICES, DEVICE AND MEDIA |
CN111510480A (zh) * | 2020-04-08 | 2020-08-07 | 北京百度网讯科技有限公司 | 一种请求发送方法、装置以及第一服务器 |
CN111600930B (zh) * | 2020-04-09 | 2022-12-09 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
CN111600930A (zh) * | 2020-04-09 | 2020-08-28 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
CN111586135A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 云部署微服务应用系统及其数据传输方法、装置和设备 |
CN113630283B (zh) * | 2020-05-08 | 2022-07-05 | 网联清算有限公司 | 一种服务链路测试方法及系统 |
CN113630283A (zh) * | 2020-05-08 | 2021-11-09 | 网联清算有限公司 | 一种服务链路测试方法及系统 |
CN113765944A (zh) * | 2020-06-01 | 2021-12-07 | 中移(苏州)软件技术有限公司 | 一种微服务治理方法、装置、设备和存储介质 |
CN111741120A (zh) * | 2020-07-01 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 一种流量镜像方法、装置及设备 |
CN111917838B (zh) * | 2020-07-14 | 2023-08-29 | 浙江大华技术股份有限公司 | 基于微服务的处理方法及装置、存储介质、电子装置 |
CN111917838A (zh) * | 2020-07-14 | 2020-11-10 | 浙江大华技术股份有限公司 | 基于微服务的处理方法及装置、存储介质、电子装置 |
WO2022033037A1 (zh) * | 2020-08-13 | 2022-02-17 | 华为技术有限公司 | 一种消息管理的方法、装置及去服务器化系统 |
WO2022068756A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为云计算技术有限公司 | 基于微服务的服务网格系统及服务治理方法 |
CN112261095B (zh) * | 2020-10-12 | 2023-11-24 | 国电南瑞科技股份有限公司 | 基于两级代理的负载分流实现系统及方法 |
CN112261095A (zh) * | 2020-10-12 | 2021-01-22 | 国电南瑞科技股份有限公司 | 基于两级代理的负载分流实现系统及方法 |
CN112333096A (zh) * | 2020-10-16 | 2021-02-05 | 济南浪潮数据技术有限公司 | 一种微服务流量调度方法及相关组件 |
CN112311894A (zh) * | 2020-11-12 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于生成信息的方法、装置、电子设备和计算机可读介质 |
CN112492060A (zh) * | 2020-11-18 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务资源处理方法及系统、代理设备、请求设备 |
CN112492060B (zh) * | 2020-11-18 | 2023-05-09 | 中国人寿保险股份有限公司 | 一种服务资源处理方法及系统、代理设备、请求设备 |
CN112637124B (zh) * | 2020-11-23 | 2022-11-18 | 中信银行股份有限公司 | 报文的处理方法、装置、电子设备及计算机可读存储介质 |
CN112637124A (zh) * | 2020-11-23 | 2021-04-09 | 中信银行股份有限公司 | 报文的处理方法、装置、电子设备及计算机可读存储介质 |
CN114650317A (zh) * | 2020-12-15 | 2022-06-21 | 中国移动通信有限公司研究院 | 一种微服务系统以及微服务注册、发现和保活方法 |
CN112491634B (zh) * | 2020-12-21 | 2021-09-24 | 北京云思畅想科技有限公司 | 一种微服务场景下全链路智能故障模拟及评估防御方法 |
CN112491634A (zh) * | 2020-12-21 | 2021-03-12 | 北京云思畅想科技有限公司 | 一种微服务场景下全链路智能故障模拟及评估防御方法 |
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113364775B (zh) * | 2021-06-04 | 2023-04-18 | 北京京东振世信息技术有限公司 | 微服务的调用方法、装置及服务器 |
CN113364775A (zh) * | 2021-06-04 | 2021-09-07 | 北京京东振世信息技术有限公司 | 微服务的调用方法、装置及服务器 |
CN113472889A (zh) * | 2021-07-08 | 2021-10-01 | 上海浦东发展银行股份有限公司 | 微服务的调度系统及方法 |
CN113315708A (zh) * | 2021-07-29 | 2021-08-27 | 数字广东网络建设有限公司 | 栅格化网关的实现系统、方法、计算机设备和存储介质 |
CN114172958B (zh) * | 2021-11-19 | 2023-10-20 | 云从科技集团股份有限公司 | 隐私计算节点、系统、方法、装置以及存储介质 |
CN114172958A (zh) * | 2021-11-19 | 2022-03-11 | 云从科技集团股份有限公司 | 隐私计算节点、系统、方法、装置以及存储介质 |
CN114513557A (zh) * | 2021-12-21 | 2022-05-17 | 上海赛可出行科技服务有限公司 | 一种金融系统发布业务不中断的微服务通信方法 |
CN114449040B (zh) * | 2022-01-28 | 2023-12-05 | 杭州迪普科技股份有限公司 | 基于云平台的配置下发方法及装置 |
CN114449040A (zh) * | 2022-01-28 | 2022-05-06 | 杭州迪普科技股份有限公司 | 基于云平台的配置下发方法及装置 |
CN114615267A (zh) * | 2022-03-15 | 2022-06-10 | 中国银行股份有限公司 | 银行系统接入私有云的系统及方法 |
CN114615321A (zh) * | 2022-03-25 | 2022-06-10 | 度小满科技(北京)有限公司 | 流量处理方法和装置 |
CN114615321B (zh) * | 2022-03-25 | 2024-03-12 | 度小满科技(北京)有限公司 | 流量处理方法和装置 |
WO2024066503A1 (zh) * | 2022-09-27 | 2024-04-04 | 华为云计算技术有限公司 | 服务调用方法及装置 |
CN116566984B (zh) * | 2023-07-06 | 2023-09-12 | 华控清交信息科技(北京)有限公司 | 一种k8s容器集群的路由信息创建方法、装置及电子设备 |
CN116566984A (zh) * | 2023-07-06 | 2023-08-08 | 华控清交信息科技(北京)有限公司 | 一种k8s容器集群的路由信息创建方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110401696B (zh) | 2020-11-06 |
US20220109741A1 (en) | 2022-04-07 |
EP3979592A4 (en) | 2022-06-29 |
WO2020253786A1 (zh) | 2020-12-24 |
EP3979592A1 (en) | 2022-04-06 |
US11677860B2 (en) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110401696A (zh) | 一种去中心化处理的方法、通信代理、主机以及存储介质 | |
CN105579965B (zh) | 经由提供商定义接口的客户端驻地资源控制 | |
Ghobaei‐Arani et al. | A moth‐flame optimization algorithm for web service composition in cloud computing: simulation and verification | |
CN104580349B (zh) | 安全云管理代理 | |
WO2020062131A1 (zh) | 一种基于区块链技术的容器云管理系统 | |
CN104410672B (zh) | 网络功能虚拟化应用升级的方法、转发业务的方法及装置 | |
CN105074702B (zh) | 提供单租户和多租户环境的数据库系统 | |
CN107689882A (zh) | 一种虚拟化网络中业务部署的方法和装置 | |
CN106656630A (zh) | 一种电力营销业务应用系统及其构建方法、平台 | |
CN105027108B (zh) | 实例主机配置 | |
CN106209402B (zh) | 一种虚拟网络功能的伸缩方法和设备 | |
CN110383765A (zh) | 使用图形模型的计算机基础结构的配置、遥测和分析 | |
WO2018037200A1 (en) | Simulation systems and methods | |
CN109743415A (zh) | 一种公有云网络弹性ip实现方法及系统 | |
CN103582867A (zh) | 用于指定基于云的部署的配置的高级语言 | |
CN102346460A (zh) | 一种基于事务的服务控制系统及其控制方法 | |
CN109791499A (zh) | 基于事件驱动策略的分布式容器管理系统 | |
CN103368768A (zh) | 混合云环境中具有启发式监视的自动缩放网络覆盖 | |
CN108255497A (zh) | 一种应用的部署方法及装置 | |
CN110209492A (zh) | 一种数据处理方法及装置 | |
US11416305B2 (en) | Commands for simulation systems and methods | |
CN104168333A (zh) | Proxzone服务平台的工作方法 | |
CN108062231A (zh) | 一种基于相关分析的云应用自动化配置方法 | |
WO2023040538A1 (zh) | 一种数据迁移的方法、装置、设备、介质和计算机产品 | |
CN110311798A (zh) | 一种管理虚拟资源的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |