本公开涉及通信技术领域,特别涉及一种微服务的处理方法、微服务的处理装置、微服务的处理系统和计算机可读存储介质。
背景技术:
微服务架构作为一种主流的新型软件架构,最近几年被越来越多的大型互联网公司采用。
在相关技术中,在微服务内集成各种类库调用代码,使用服务注册等服务控制功能,消费者业务请求通过微服务网关集中代理转发。
技术实现要素:
本公开的发明人发现上述相关技术中存在如下问题:在高并发情况下,采用微服务网关模块进行集中服务调用,导致系统处理性能低。
鉴于此,本公开提出了一种微服务的处理技术方案,能够提高系统的处理性能。
根据本公开的一些实施例,提供了一种微服务的处理方法,包括:控制装置接收客户端发送的对微服务的调用请求,所述调用请求通过所述客户端所在容器的服务网格发送;所述控制装置根据所述调用请求,确定所述微服务所在容器的地址;所述控制装置将所述微服务所在容器的地址发送给所述客户端,以便所述客户端获取所述微服务。
在一些实施例中,每个所述容器中均配置有服务网格,所述服务网格用于所述容器之间的通信和所述容器与所述控制装置之间的通信。
在一些实施例中,所述控制装置通过所述客户端所在容器的服务网格,将所述微服务所在容器的地址发送给所述客户端。
在一些实施例中,所述调用请求被所述客户端通过所述客户端所在容器的服务网格路由至所述微服务所在容器的服务网格,以获取所述微服务。
在一些实施例中,所述控制装置通过各微服务所在容器的服务网格,对所述各微服务进行注册。
在一些实施例中,所述控制装置将各微服务的相关配置下发给所述各微服务所在容器。
在一些实施例中,所述控制装置根据所述微服务,对所述客户端进行认证;所述控制装置将认证结果下发给所述客户端所在容器和所述微服务所在容器。
在一些实施例中,所述控制装置将通信加密策略下发给所述客户端所在容器和所述微服务所在容器。
在一些实施例中,所述控制装置包括:管理模块,用于确定所述微服务所在容器的地址、注册微服务,以及提供流量分配、负载均衡、路由规则,服务网格生命周期管理功能中的一项或多项;运维模块,用于提供运维的相关配置、acl(accesscontrollist,访问控制列表)检查、黑白名单、限流、日志、监控功能中的一项或多项;认证模块,用于提供通信加密策略、身份认证、密钥管理、通信安全、访问控制功能中的一项或多项。
根据本公开的另一些实施例,提供一种微服务的处理装置,包括:接收器,用于接收客户端发送的对微服务的调用请求,所述调用请求通过所述客户端所在容器的服务网格发送;处理器,用于根据所述调用请求,确定所述微服务所在容器的地址;发送器,用于将所述微服务所在容器的地址发送给所述客户端,以便所述客户端获取所述微服务。
在一些实施例中,每个所述容器中均配备服务网格,所述服务网格用于所述容器之间的通信和所述容器与所述控制装置之间的通信。
在一些实施例中,所述发送器通过所述客户端所在容器的服务网格,将所述微服务所在容器的地址发送给所述客户端。
在一些实施例中,所述调用请求被所述客户端通过所述客户端所在容器的服务网格路由至所述微服务所在容器的服务网格,以获取所述微服务。
在一些实施例中,所述处理器通过各微服务所在容器的服务网格,对所述各微服务进行注册。
在一些实施例中,所述发送器将各微服务的相关配置下发给所述各微服务所在容器。
在一些实施例中,所述处理器根据所述微服务,对所述客户端进行认证;所述发送器将认证结果下发给所述客户端所在容器和所述微服务所在容器。
在一些实施例中,所述发送器将通信加密策略下发给所述客户端所在容器和所述微服务所在容器。
在一些实施例中,所述处理器包括:管理模块,用于确定所述微服务所在容器的地址、注册微服务,以及提供流量分配、负载均衡、路由规则,服务网格生命周期管理功能中的一项或多项;运维模块,用于提供运维的相关配置、acl检查、黑白名单、限流、日志、监控功能中的一项或多项;认证模块,用于提供通信加密策略、身份认证、密钥管理、通信安全、访问控制功能中的一项或多项。
根据本公开的又一些实施例,提供一种微服务的处理系统,包括:控制装置,用于执行上述任一个实施例中的微服务的处理方法;容器,包括微服务模块和服务网格模块。
根据本公开的又一些实施例,提供一种微服务的处理装置,包括:存储器;和耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行上述任一个实施例中的微服务的处理方法。
根据本公开的再一些实施例,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一个实施例中的微服务的处理方法。
在上述实施例中,在容器中配置服务网格,用于实现容器与控制装置之间的通信功能,将系统中的转发面功能分散在各容器中,解决了集中式微服务网关的性能瓶颈,从而提高系统处理性能。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出本公开的微服务的处理方法的一些实施例的流程图;
图2示出本公开的微服务的处理方法的一些实施例的示意图;
图3示出本公开的微服务的处理方法的一些实施例的信令图;
图4示出本公开的微服务的处理装置的一些实施例的框图;
图5示出本公开的微服务的处理系统的一些实施例的框图;
图6示出本公开的微服务的处理装置的另一些实施例的框图;
图7示出本公开的微服务的处理装置的又一些实施例的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1示出本公开的微服务的处理方法的一些实施例的流程图。
如图1所示,该方法包括:步骤110,接收调用请求;步骤120,确定容器地址;步骤130,发送容器地址。
在步骤110中,控制装置接收客户端发送的对微服务的调用请求,调用请求通过客户端所在容器的服务网格发送。
在一些实施例中,每个容器中均配置有服务网格,服务网格用于容器之间的通信和容器与所述控制装置之间的通信。例如,容器中还配置有微服务模块,控制装置将各微服务的相关配置下发给各微服务所在容器,容器通过自身配置的服务网格接收相关配置。相关配置可以包括微服务的流量限制、日志和性能监控指标等。
在步骤120中,控制装置根据调用请求,确定微服务所在容器的地址。
在一些实施例中,控制装置通过各微服务所在容器的服务网格,对各微服务进行注册。例如,微服务通过所在容器的服务网格在控制装置进行服务注册,控制装置可以获取微服务所在容器的地址。响应于接收到客户端的调用请求,控制装置可以在注册的微服务中查找对应的微服务,并对微服务进行负载均衡和故障判断从而确定微服务的容器地址
在步骤130中,控制装置将微服务所在容器的地址发送给客户端,以便客户端获取所述微服务。例如,控制装置通过客户端所在容器的服务网格,将微服务所在容器的地址发送给客户端,客户端通过客户端所在容器的服务网格将调用请求路由至微服务所在容器的服务网格,以获取微服务。
在一些实施例中,控制装置根据微服务,对客户端进行认证,并将认证结果下发给客户端所在容器和微服务所在容器。控制装置还可以将通信加密策略下发给客户端所在容器和微服务所在容器。例如,通信加密策略可以包括访问加密策略和链路加密策略中的至少一项,以便容器通过加密的方式进行通信。
图2示出本公开的微服务的处理方法的一些实施例的示意图。
如图2所示,容器21中配置有客户端211和服务网格212,容器22中配置有微服务222和服务网格212。微服务222通过服务网格221与容器21、控制装置23以及其他微服务所在的容器进行通信。
在一些实施例中,服务网格可以提供基于http(hypertexttransferprotocol,超文本传输协议)1.1/2.0、grpc(remoteprocedurecall,远程过程调用协议)、tcp(transmissioncontrolprotocol,传输控制协议)的微服务间通信能力。
服务网格还可以提供通信相关的服务发现(例如,从控制装置23的管理模块231获取微服务的容器地址等)、过滤、负载均衡、健康检查、执行路由规则、加密和认证,还可以将性能指标和日志发送给控制装置23的运维模块232。例如,服务网格可以提供api(applicationprogramminginterface,应用程序编程接口)与控制装置23对接。
这样,无需集中式网关,服务网格采用分布式架构为每个微服务同时部署;服务网格之间可以进行路由转发和负载均衡,无需单独的api网关,从而提高了系统的扩展性和处理性能。而且,服务网格以远程调用的方式让客户端接入,简化了客户端。例如,对于典型的rest请求,几乎所有的语言都有完善的支持,可以实现不同语言编写的微服务间的相互通信。
控制装置23可以包括管理模块231、运维模块232和认证模块233,分别负责不同的功能。例如,管理模块231、运维模块232和认证模块233可以分别被配置在不同的容器中。
在一些实施例中,管理模块231用于确定微服务所在容器的地址、注册微服务,以及提供流量分配、负载均衡、路由规则,服务网格生命周期管理功能中的一项或多项。运维模块232提供运维的相关配置、acl检查、黑白名单、限流、日志、监控功能中的一项或多项。认证模块233提供通信加密策略、身份认证、密钥管理、通信安全、访问控制功能中的一项或多项。
这样,服务网格的松耦合特性能够作到对微服务透明,可以根据需要对服务网格和微服务进行单独升级,对微服务影响小。运维模块对每个服务网格进行配置和信息收集,能够完全掌控全部微服务的流量,实现极细颗粒度的运维管控,而且由于和服务剥离,新增的运维需求也容易得到实现。
图3示出本公开的微服务的处理方法的一些实施例的信令图。
如图3所示,在事件310中,运维人员通过控制装置的运维模块配置微服务的流量限制、日志和性能监控指标等相关配置,并下发到各容器(客户端容器、各微服务容器)的服务网格。
在事件320中,微服务通过所在的微服务容器的服务网格在控制装置的管理模块进行注册。
在事件330中,客户端(服务型消费者)通过客户端容器的服务网格向控制装置发送微服务调用请求。
在事件340中,控制装置的认证模块基于微服务对客户端进行身份认证。
在事件350中,控制装置的管理模块查找对应微服务所在的容器,根据负载均衡和故障判断,确定的微服务容器的地址。
在事件360中,控制装置将认证结果下发给客户端容器和微服务容器。控制装置还可以将通信加密策略下发给客户端容器和微服务容器。
在事件370中,控制装置将微服务容器的地址下发给客户端容器。
在事件380中,客户端容器经由服务网格将调用请求路由至微服务容器以获取服务。
在上述实施例中,在容器中配置服务网格,用于实现容器与控制装置之间的通信功能,将系统中的转发面功能分散在各容器中,解决了集中式微服务网关的性能瓶颈,从而提高系统处理性能。
图4示出本公开的微服务的处理装置的一些实施例的框图。
如图4所示,微服务的处理装置4包括接收器41、处理器42和发送器43。
接收器41接收客户端发送的对微服务的调用请求,调用请求通过客户端所在容器的服务网格发送。例如,调用请求被客户端通过客户端所在容器的服务网格路由至微服务所在容器的服务网格,以获取微服务。
处理器42根据调用请求,确定微服务所在容器的地址。处理器43还通过各微服务所在容器的服务网格,对各微服务进行注册。
发送器43将微服务所在容器的地址发送给客户端,以便客户端获取微服务。例如,发送器43通过客户端所在容器的服务网格,将微服务所在容器的地址发送给客户端。发送器43还将各微服务的相关配置下发给各微服务所在容器。发送器43还可以将通信加密策略下发给客户端所在容器和微服务所在容器。
在一些实施例中,每个容器中均配备服务网格,服务网格用于容器之间的通信和容器与控制装置之间的通信。
在一些实施例中,处理器42根据微服务,对客户端进行认证。发送器43将认证结果下发给客户端所在容器和微服务所在容器。
在一些实施例中,处理器42包括管理模块、运维模块和认证模块。
管理模块确定微服务所在容器的地址、注册微服务,以及提供流量分配、负载均衡、路由规则,服务网格生命周期管理功能中的一项或多项。运维模块提供运维的相关配置、acl检查、黑白名单、限流、日志、监控功能中的一项或多项。认证模块提供通信加密策略、身份认证、密钥管理、通信安全、访问控制功能中的一项或多项。
在上述实施例中,在容器中配置服务网格,用于实现容器与控制装置之间的通信功能,将系统中的转发面功能分散在各容器中,解决了集中式微服务网关的性能瓶颈,从而提高系统处理性能。
图5示出本公开的微服务的处理系统的一些实施例的框图。
如图5所示,微服务的处理系统5包括控制装置51,用于执行上述任一个实施例中的微服务的处理方法;容器52,包括微服务模块和服务网格模块。
图6示出本公开的微服务的处理装置的另一些实施例的框图。
如图6所示,该实施例的微服务的处理装置6包括:存储器61以及耦接至该存储器61的处理器62,处理器62被配置为基于存储在存储器61中的指令,执行本公开中任意一个实施例中的微服务的处理方法。
其中,存储器61例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)、数据库以及其他程序等。
图7示出本公开的微服务的处理装置的又一些实施例的框图。
如图7所示,该实施例的微服务的处理装置7包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的微服务的处理方法。
存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。
微服务的处理装置7还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730、740、750以及存储器710和处理器720之间例如可以通过总线860连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口750为sd卡、u盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
至此,已经详细描述了根据本公开的微服务的处理方法、微服务的处理装置、微服务的处理系统和计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。