CN112311786A - 一种服务请求处理方法、装置、存储介质及计算设备 - Google Patents
一种服务请求处理方法、装置、存储介质及计算设备 Download PDFInfo
- Publication number
- CN112311786A CN112311786A CN202011169241.0A CN202011169241A CN112311786A CN 112311786 A CN112311786 A CN 112311786A CN 202011169241 A CN202011169241 A CN 202011169241A CN 112311786 A CN112311786 A CN 112311786A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- white list
- instance
- upgraded
- 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
Images
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/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务请求处理方法、装置、存储介质及计算设备,该方法包括:拦截客户端的服务请求,判断已升级服务白名单中是否存在服务请求所请求调用的目标服务;若存在目标服务,则获取目标服务对应的实例地址,将实例地址转换为服务名,通过服务名向对应服务端请求调用目标服务;若不存在目标服务,则获取目标服务对应的实例地址,直接通过实例地址向对应服务端请求调用目标服务。本发明实施例通过采用已升级服务白名单的方式实现了应用级别的架构升级,针对不同的服务机制采用不同方式进行网络调用,使得微服务的网络调用能够同时兼容支持未升级服务和已升级服务两种服务机制,也使得微服务架构地升级过程更加地平滑和稳定。
Description
技术领域
本发明涉及网络调用技术领域,尤其是一种服务请求处理方法、装置、存储介质及计算设备。
背景技术
在微服务体系Spring Cloud下常见的服务间调用方式有Feign(http调用中间件)调用方式和gRPC(网络调用中间件)调用方式,调用过程都是从服务注册中心中获取Pod信息,然后进行调用。在Service Mesh服务网格体系下,服务调用过程为客户端服务通过服务名进行网络调用。通常在技术演进过程中,为了保证服务的稳定性,往往是一小部分服务先升级,一部分服务保持不变,等升级的服务稳定之后,再全量升级。而采用现有的上述两种网络调用方式都只能以自己的方式独立运行,无法满足真实的业务场景的需求。
发明内容
有鉴于此,本发明实施例提供了一种服务请求处理方法、装置、存储介质及计算设备,能够达到针对不同的服务机制采用不同方式进行网络调用的效果,使得微服务的网络调用能够同时兼容支持未升级服务和已升级服务两种服务机制,也使得微服务架构地升级过程更加地平滑和稳定。
根据本发明实施例的一方面,提供了一种服务请求处理方法,包括:
拦截客户端的服务请求,判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务;
若存在所述目标服务,则获取所述目标服务对应的实例地址,将所述实例地址转换为服务名,通过所述服务名向对应服务端请求调用所述目标服务;
若不存在所述目标服务,则获取所述目标服务对应的实例地址,直接通过所述实例地址向对应服务端请求调用所述目标服务。
可选地,拦截客户端的服务请求之前,还包括:获取多项已升级服务的服务标识;将所述服务标识添加至已升级服务白名单,并通过配置中心配置白名单服务;
判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务,包括:获取所述目标服务的服务标识,依据所述服务标识判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务。
可选地,调用所述目标服务的方式包括http调用中间件调用方式和/或网络调用中间件调用方式,通过配置中心配置白名单服务之后,还包括:
在所述http调用中间件和/或网络调用中间件中添加用于接收所述白名单服务的配置类IstioProperties;
通过添加的所述配置类IstioProperties接收配置的白名单服务。
可选地,判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务之前还包括:通过Watch机制从服务注册中心获取所述目标服务的实例集合;采用负载均衡算法从所述实例集合中选择服务实例;
获取所述目标服务对应的实例地址,包括:获取所选服务实例的实例地址。
可选地,所述服务注册中心包含由不同服务端在服务启动时向所述服务注册中心注册的实例地址,且一项服务对应多个实例地址。
可选地,通过所述服务名向对应的服务端请求调用所述目标服务,包括:
基于防火墙iptables规则将所述服务请求转发至代理中间件;
通过所述代理中间件从服务注册中心查找所述服务名对应的实例地址,依据查找到的实例地址向对应的服务端请求调用所述目标服务。
根据本发明实施例的另一方面,还提供了一种服务请求处理装置,包括:
拦截模块,适于拦截客户端的服务请求,判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务;
第一调用模块,适于若已升级服务白名单中存在所述目标服务,则获取所述目标服务对应的实例地址,将所述实例地址转换为服务名,通过所述服务名向对应服务端请求调用所述目标服务;
第二调用模块,适于若已升级服务白名单中不存在所述目标服务,则获取所述目标服务对应的实例地址,直接通过所述实例地址向对应服务端请求调用所述目标服务。
可选地,所述装置还包括:
配置模块,适于在拦截模块拦截客户端的服务请求之前,获取多项已升级服务的服务标识;将所述服务标识添加至已升级服务白名单,并通过配置中心配置白名单服务;
所述拦截模块,还适于获取所述目标服务的服务标识,依据所述服务标识判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务。
可选地,调用所述目标服务的方式包括http调用中间件调用方式和/或网络调用中间件调用方式,所述装置还包括:
添加模块,适于在配置模块通过配置中心配置白名单服务之后,在所述http调用中间件和/或网络调用中间件中添加用于接收所述白名单服务的配置类IstioProperties;
接收模块,适于通过添加的所述配置类IstioProperties接收配置的白名单服务。
可选地,所述装置还包括:
选择模块,适于在拦截模块判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务之前,通过Watch机制从服务注册中心获取所述目标服务的实例集合;采用负载均衡算法从所述实例集合中选择服务实例;
所述第一调用模块,还适于获取所选服务实例的实例地址;且所述第二调用模块,还适于获取所选服务实例的实例地址。
可选地,所述服务注册中心包含由不同服务端在服务启动时向所述服务注册中心注册的实例地址,且一项服务对应多个实例地址。
可选地,所述第一调用模块,还适于:
基于防火墙iptables规则将所述服务请求转发至代理中间件;
通过所述代理中间件从服务注册中心查找所述服务名对应的实例地址,依据查找到的实例地址向对应的服务端请求调用所述目标服务。
根据本发明实施例的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任意实施例的服务请求处理方法。
根据本发明实施例的又一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任意实施例的服务请求处理方法。
本发明实施例在网络调用过程中通过拦截客户端的服务请求,并判断已升级服务白名单中是否存在服务请求所请求调用的目标服务。若白名单中包含目标服务,认为目标服务为已升级服务,可以将目标服务的实例地址先转换为服务名,进而通过服务名向对应服务端请求调用目标服务。若白名单中不包含目标服务,认为目标服务为未升级服务,则直接通过目标服务的实例地址向对应服务端请求调用目标服务。本发明实施例通过采用已升级服务白名单的方式实现了应用级别的架构升级,针对不同的服务机制采用不同方式进行网络调用,使得微服务的网络调用能够同时兼容支持原有的未升级服务(如Java技术体系常用的微服务架构Spring Cloud)和已升级服务(如服务网格Service Mesh)两种服务机制,也使得微服务架构地升级过程更加地平滑和稳定。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出了本发明一实施例的服务请求处理方法的流程示意图;
图2示出了本发明一实施例的服务请求处理过程的示意图;
图3示出了本发明一实施例的服务请求处理装置的结构示意图;
图4示出了本发明另一实施例的服务请求处理装置的结构示意图;
图5示出了本发明再一实施例的服务请求处理装置的结构示意图;
图6示出了本发明又一实施例的服务请求处理装置的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
为解决上述技术问题,本发明实施例提供了一种服务请求处理方法。图1示出了本发明一实施例的服务请求处理方法的流程示意图。参见图1,服务请求处理方法包括步骤S102至步骤S108。
步骤S102,拦截客户端的服务请求。
本发明实施例中,当客户端服务调用服务端服务时,可以基于中间的代理服务器拦截客户端的服务请求,进而在后续通过分析服务请求所请求的目标服务来选择合适的调用方式。本发明实施例对客户端的服务请求进行拦截,可以是在客户端服务的访问出口处对服务请求进行拦截。
步骤S104,判断已升级服务白名单中是否存在服务请求所请求调用的目标服务。若是,执行步骤S106,若否,执行步骤S108。
本发明实施例的已升级服务白名单中记录了多项已升级服务。因此,若目标服务存在于已升级服务白名单中,则说明目标服务为已升级服务。若目标服务不存在于已升级服务白名单中,则说明目标服务不是已升级服务。
步骤S106,获取目标服务对应的实例地址,将实例地址转换为服务名,通过服务名向对应服务端请求调用目标服务。
本发明实施例的实例地址可以是服务实例的Pod IP,Pod为容器化编排系统Kubernetes中一个服务Service下实例的最小定义,一个服务Service可以对应多个服务实例Pod。将实例地址转换为服务名,即将服务实例的Pod IP转换为服务名service name。
步骤S108,获取目标服务对应的实例地址,直接通过实例地址向对应服务端请求调用目标服务。
通常微服务处于升级过渡期时,一部分服务升级,如已升级服务为服务网格Service Mesh,另一部分服务未升级,如Java技术体系常用的微服务架构Spring Cloud。本发明实施例通过采用已升级服务白名单的方式实现了应用级别的架构升级,针对不同的服务机制采用不同方式进行网络调用,使得微服务的网络调用能够同时兼容支持原有的未升级服务和已升级服务两种服务机制,也使得微服务架构地升级过程更加地平滑和稳定。
在本发明一实施例中,执行上文步骤S102中的拦截客户端的服务请求之前还可以先配置白名单服务,以使服务请求处理过程能够成功使用配置的白名单服务。首先获取多项已升级服务的服务标识,然后将服务标识添加至已升级服务白名单,并通过配置中心配置白名单服务。由此,本发明实施例的已升级服务白名单中保存了多项已升级服务的服务标识。
进而,在执行步骤S104判断已升级服务白名单中是否存在服务请求所请求调用的目标服务时,通过获取目标服务的服务标识,以依据服务标识判断已升级服务白名单中是否存在服务请求所请求调用的目标服务。若已升级服务白名单存在目标服务的服务标识,说明目标服务为已升级服务,反之,说明目标服务不是已升级服务。
本发明实施例还可以定时对已升级服务白名单进行更新,即定时获取多项已升级服务的服务标识,并利用定时获取的服务标识对已升级服务白名单中的内容进行更新。从而可以使已升级服务白名单中保存的服务标识是准确的已升级服务的服务标识,提高了使用已升级服务白名单判断目标服务是否为已升级服务的准确性。
通常在微服务架构Spring Cloud下常见的服务间调用方式有http调用中间件Feign调用方式和网络调用中间件gRPC调用方式中的至少一项。本发明实施例可以通过白名单方式增强Feign调用方式、gRPC调用方式的调用逻辑。本发明实施例在通过配置中心配置白名单服务之后,可以在http调用中间件和/或网络调用中间件中添加用于接收白名单服务的配置类IstioProperties,并通过添加的配置类IstioProperties接收配置的白名单服务。本发明实施例增强调用逻辑后的http调用中间件可以定义为Feign Starter,增强调用逻辑后的网络调用中间件可以定义为gRPC Starter。
在该实施例中,在对网络调用中间件gRPC增强调用逻辑后,若采用网络调用中间件gRPC Starter进行网络调用,在步骤S106中获取到目标服务对应的实例地址Pod IP后,可以依据Pod IP创建调用对象NettyChannel,将实例地址Pod IP转换为服务名servicename,并利用创建的调用对象NettyChannel通过服务名service name向对应服务端请求调用目标服务。本发明实施例依据Pod IP创建调用对象NettyChannel时,可以采用builder模式,通过执行builder.build()创建调用对象NettyChannel。
在本发明一实施例中,通过添加的配置类IstioProperties接收配置的白名单服务时,可以通过用于定义配置类的@Configuration注解引入配置的白名单服务,具体可以参见如下代码,其中mapping表示白名单集合。
在本发明一实施例中,在判断已升级服务白名单中是否存在服务请求所请求调用的目标服务之前,还可以通过Watch机制从服务注册中心Consul获取目标服务的实例集合,然后采用负载均衡算法从实例集合中选择服务实例。本发明实施例的服务注册中心Consul中注册有不同服务的实例集合列表Pod Server List,因此可以从实例集合列表PodServer List中获取目标服务的实例集合。进而,在获取目标服务对应的实例地址时,可以获取通过负载均衡算法所选择的服务实例的Pod IP。
上文已经介绍对http调用中间件Feign增强逻辑后得到Feign Starter,对网络调用中间件gRPC增强逻辑后得到gRPC Starter,因此,本发明实施例利用http调用中间件Feign Starter、调用中间件gRPC Starter中的至少一种中间件采用负载均衡算法从实例集合中选择服务实例。
通常情况下,服务提供方是以多实例的形式提供服务的,本发明实施例通过Watch机制从服务注册中心Consul获取目标服务的实例集合后,采用负载均衡算法从实例集合中选择服务实例,不仅可以保持原来微服务的重试机制和熔断机制,而且还可以有效地保证目标服务对应的服务实例负载均衡,以使客户端向合适的服务端调用服务。
在本发明可选实施例中,在获取目标服务对应的实例地址时,可以从服务注册中心Consul获取目标服务对应的Pod IP。当任意服务端在服务启动时可以向服务注册中心注册服务实例的元信息,且将注册的元信息与相应的服务对应存储,服务实例的元信息包括实例地址Pod IP和端口Port,通常一项服务可以对应多个Pod IP。因此,本发明实施例可以从服务注册中心中直接获取到目标服务对应的Pod IP。
参见上文步骤S106,在本发明一实施例中,通过服务名向对应的服务端请求调用目标服务时,可以先基于防火墙iptables规则将服务请求转发至代理中间件,然后通过代理中间件从服务注册中心Consul查找服务名service name对应的实例地址,并依据查找到的实例地址向对应的服务端请求调用目标服务。例如,将服务请求转发至服务网格ServiceMesh的边车服务sidecar,然后通过边车服务sidecar从服务注册中心Consul查找服务名service name对应的实例地址,并依据查找到的实例地址向对应的服务端请求调用目标服务。
本发明实施例基于防火墙iptables规则将服务请求转发至代理中间件,即对服务请求进行再次拦截,若客户端服务A调用服务端服务B,则在可以在客户端服务A挂接一个边车服务sidecar,通过防火墙iptables规则将服务请求拦截到边车服务sidecar,在边车服务sidecar中进行流量规则控制、安全监测等过程,以保证网络调用过程的稳定性和安全性。
本发明实施例的边车服务sidecar可以采用代理中间件Envoy,代理中间件Envoy通过服务发现机制从服务注册中心Consul查找服务名service name对应的Pod IP,本发明实施例的服务发现机制可以是xDS机制,此处不作具体限定。
为了更加清楚的体现本发明实施例内容,现以图2所示的服务请求处理过程为例对本发明方案进行具体介绍。
1、在服务注册Register过程中,服务端的服务启动时向服务注册中心consul注册服务实例的元信息,服务实例的元信息包括实例地址Pod IP、实例端口Port等信息。
2、在服务发现Discovery过程中,当客户端发出调用请求以请求调用目标服务时,先从服务注册中心Consul中查找目标服务对应的服务实例集合。
本发明实施例可以通过Watch机制从服务注册中心consul获取目标服务对应的实例集合。
3、在负载均衡Balance过程,采用负载均衡算法从实例集合中选择服务实例。
本发明实施例中,调用方式包含增强用逻辑后的Feign Starter调用中间件调用方式、gRPC Starter调用中间件调用方式中的至少一种调用方式,因此可以通过增强用逻辑后的任一种调用中间件采用负载均衡算法从实例集合中选择服务实例。该实施例可以从实例集合中选择一个服务实例,也可以选择多个实例。本发明实施例通过采用负载均衡算法从实例集合中选择服务实例,可以兼容微服务体系Spring Cloud的容错框架Hystrix的熔断策略,以保证正常的服务熔断。
4、判断白名单中是否存在目标服务。
这里的白名单为包含已升级服务的白名单。
5、如果判断得知已升级服务白名单中不存在目标服务,则获取选择的服务实例的Pod IP后,直接通过Pod IP向服务端调用目标服务。
本发明实施例选择目标服务对应的两个服务实例,因此获取到两个服务实例的Pod IP,且分别对应服务端server1和服务端srever2,即向应服务端server1和服务端srever2进行网络调用。
6、如果判断得知白名单中存在目标服务,则获取选择的服务实例的Pod IP后,将Pod IP转换为服务名service name。
本发明实施例可以从服务注册中心Consul中获取服务实例的Pod IP。本发明实施例转换后的服务名service name可以采用全限定域名FQDN(Fully Qualified DomainName),全限定域名可以同时携带服务端主机名和域名。例如将一个Pod IP转换为服务名service.namespace。
7、通过代理中间件Envoy采用发现机制从服务注册中心Consul获取服务名service name对应的Pod IP,依据Pod IP向服务端调用目标服务。
该实施例的服务端为服务端server1和服务端srever2,因此,向应服务端server1和服务端srever2进行网络调用。
在本发明实施例中,上文实施例中介绍的增加逻辑后的http调用中间件feignstarter全称为feign-enhance-spring-boot-starter,在feign starter调用方式中,从服务注册中心Consul中获取服务实例的Pod IP后,将Pod IP转换为服务名service name,具体代码如下。
在本发明实施例中,上文实施例中介绍的增强调用逻辑后的网络调用中间件gRPCStarter的全称为grpc-spring-boot-starter,在gRPC Starter调用方式中,从服务注册中心Consul中获取服务实例的Pod IP,依据Pod IP创建调用对象NettyChannel后,通过服务发现机制获取NettyChannel,调用对象NettyChannel用于通过服务名service name调用目标服务,具体代码如下:
由此,本发明实施例在微服务架构Spring Cloud升级至网络服务架构ServiceMesh时,通过增强调用中间件Feign和gRPC,能够同时支持原有的未升级服务和已升级服务两种服务机制。
基于同一发明构思,本发明实施例还提供了一种服务请求处理装置,图3示出了本发明一实施例的服务请求处理装置的结构示意图。参见图3,服务请求处理装置包括拦截模块310、第一调用模块320和第二调用模块330。
拦截模块310,适于拦截客户端的服务请求,判断已升级服务白名单中是否存在服务请求所请求调用的目标服务。
第一调用模块320,适于若已升级服务白名单中存在目标服务,则获取目标服务对应的实例地址,将实例地址转换为服务名,通过服务名向对应服务端请求调用目标服务。
第二调用模块330,适于若已升级服务白名单中不存在目标服务,则获取目标服务对应的实例地址,直接通过实例地址向对应服务端请求调用目标服务。
参见图4,在本发明一实施例中,图3所示服务请求处理装置还包括配置模块340。
配置模块340,适于在拦截模块310拦截客户端的服务请求之前,获取多项已升级服务的服务标识;将服务标识添加至已升级服务白名单,并通过配置中心配置白名单服务。
拦截模块310,还适于获取目标服务的服务标识,依据服务标识判断已升级服务白名单中是否存在服务请求所请求调用的目标服务。
参见图5,在本发明一实施例中,调用目标服务的方式包括http调用中间件调用方式和/或网络调用中间件调用方式,图4所示服务请求处理装置还包括添加模块350和接收模块360。
添加模块350,适于在配置模块340通过配置中心配置白名单服务之后,在http调用中间件和/或网络调用中间件中添加用于接收白名单服务的配置类IstioProperties。
接收模块360,适于通过添加的配置类IstioProperties接收配置的白名单服务。
参见图6,在本发明一实施例中,图3所示服务请求处理装置还包括选择模块370。
选择模块370,适于在拦截模块310判断已升级服务白名单中是否存在服务请求所请求调用的目标服务之前,通过Watch机制从服务注册中心获取目标服务的实例集合;采用负载均衡算法从实例集合中选择服务实例。
第一调用模块320,还适于获取所选服务实例的实例地址;且第二调用模块330,还适于获取所选服务实例的实例地址。
在本发明一实施例中,服务注册中心包含由不同服务端在服务启动时向服务注册中心注册的实例地址,且一项服务对应多个实例地址。
在本发明一实施例中,第一调用模块320还适于,基于防火墙iptables规则将服务请求转发至代理中间件;通过代理中间件从服务注册中心查找服务名对应的实例地址,依据查找到的实例地址向对应的服务端请求调用目标服务。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任意实施例的服务请求处理方法。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任意实施例的服务请求处理方法。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种服务请求处理方法,其特征在于,包括:
拦截客户端的服务请求,判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务;
若存在所述目标服务,则获取所述目标服务对应的实例地址,将所述实例地址转换为服务名,通过所述服务名向对应服务端请求调用所述目标服务;
若不存在所述目标服务,则获取所述目标服务对应的实例地址,直接通过所述实例地址向对应服务端请求调用所述目标服务。
2.根据权利要求1所述的方法,其特征在于,
所述拦截客户端的服务请求之前,还包括:获取多项已升级服务的服务标识;将所述服务标识添加至已升级服务白名单,并通过配置中心配置白名单服务;
所述判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务,包括:获取所述目标服务的服务标识,依据所述服务标识判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务。
3.根据权利要求2所述的方法,其特征在于,所述调用所述目标服务的方式包括http调用中间件调用方式和/或网络调用中间件调用方式,
所述通过配置中心配置白名单服务之后,还包括:
在所述http调用中间件和/或网络调用中间件中添加用于接收所述白名单服务的配置类IstioProperties;
通过添加的所述配置类IstioProperties接收配置的白名单服务。
4.根据权利要求1-3中任一项所述的方法,其特征在于,
所述判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务之前还包括:通过Watch机制从服务注册中心获取所述目标服务的实例集合;采用负载均衡算法从所述实例集合中选择服务实例;
所述获取所述目标服务对应的实例地址,包括:获取所选服务实例的实例地址。
5.根据权利要求4所述的方法,其特征在于,
所述服务注册中心包含由不同服务端在服务启动时向所述服务注册中心注册的实例地址,且一项服务对应多个实例地址。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述通过所述服务名向对应的服务端请求调用所述目标服务,包括:
基于防火墙iptables规则将所述服务请求转发至代理中间件;
通过所述代理中间件从所述服务注册中心查找所述服务名对应的实例地址,依据查找到的实例地址向对应的服务端请求调用所述目标服务。
7.一种服务请求处理装置,其特征在于,包括:
拦截模块,适于拦截客户端的服务请求,判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务;
第一调用模块,适于若已升级服务白名单中存在所述目标服务,则获取所述目标服务对应的实例地址,将所述实例地址转换为服务名,通过所述服务名向对应服务端请求调用所述目标服务;
第二调用模块,适于若已升级服务白名单中不存在所述目标服务,则获取所述目标服务对应的实例地址,直接通过所述实例地址向对应服务端请求调用所述目标服务。
8.根据权利要求7所述的装置,其特征在于,还包括:
配置模块,适于在拦截模块拦截客户端的服务请求之前,获取多项已升级服务的服务标识;将所述服务标识添加至已升级服务白名单,并通过配置中心配置白名单服务;
所述拦截模块,还适于获取所述目标服务的服务标识,依据所述服务标识判断已升级服务白名单中是否存在所述服务请求所请求调用的目标服务。
9.一种计算机可读存储介质,存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行权利要求1-6中任一项所述的服务请求处理方法。
10.一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行权利要求1-6中任一项所述的服务请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011169241.0A CN112311786B (zh) | 2020-10-28 | 2020-10-28 | 一种服务请求处理方法、装置、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011169241.0A CN112311786B (zh) | 2020-10-28 | 2020-10-28 | 一种服务请求处理方法、装置、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112311786A true CN112311786A (zh) | 2021-02-02 |
CN112311786B CN112311786B (zh) | 2023-06-13 |
Family
ID=74332128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011169241.0A Active CN112311786B (zh) | 2020-10-28 | 2020-10-28 | 一种服务请求处理方法、装置、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112311786B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988223A (zh) * | 2021-03-25 | 2021-06-18 | 北京百度网讯科技有限公司 | 框架集成方法、装置、电子设备及存储介质 |
CN113315820A (zh) * | 2021-05-20 | 2021-08-27 | 西安华讯科技有限责任公司 | 一种构建实体网格网络方法及装置 |
CN114138375A (zh) * | 2021-12-30 | 2022-03-04 | 高新兴智联科技有限公司 | 一种物联网服务云架构及应用该云架构的射频测试系统 |
CN114650276A (zh) * | 2022-02-24 | 2022-06-21 | 北京健康之家科技有限公司 | 业务请求处理方法、电子设备终端及存储介质 |
CN115103028A (zh) * | 2022-07-22 | 2022-09-23 | 深圳竹云科技股份有限公司 | SaaS应用的请求处理方法、装置、计算机设备 |
CN115643306A (zh) * | 2022-09-07 | 2023-01-24 | 上海浦东发展银行股份有限公司 | 一种网格服务实例和配置的动态下发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324177A (zh) * | 2019-05-31 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种微服务架构下的服务请求处理方法、系统及介质 |
WO2020147396A1 (zh) * | 2019-01-17 | 2020-07-23 | 平安科技(深圳)有限公司 | 服务域名的动态配置方法、装置、设备及存储介质 |
US10812366B1 (en) * | 2017-08-31 | 2020-10-20 | Google Llc | System and method for deploying, scaling and managing network endpoint groups in cloud computing environments |
CN112231120A (zh) * | 2020-10-17 | 2021-01-15 | 苏州斯玛维科技有限公司 | 服务访问方法和装置 |
-
2020
- 2020-10-28 CN CN202011169241.0A patent/CN112311786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10812366B1 (en) * | 2017-08-31 | 2020-10-20 | Google Llc | System and method for deploying, scaling and managing network endpoint groups in cloud computing environments |
WO2020147396A1 (zh) * | 2019-01-17 | 2020-07-23 | 平安科技(深圳)有限公司 | 服务域名的动态配置方法、装置、设备及存储介质 |
CN110324177A (zh) * | 2019-05-31 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种微服务架构下的服务请求处理方法、系统及介质 |
CN112231120A (zh) * | 2020-10-17 | 2021-01-15 | 苏州斯玛维科技有限公司 | 服务访问方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988223A (zh) * | 2021-03-25 | 2021-06-18 | 北京百度网讯科技有限公司 | 框架集成方法、装置、电子设备及存储介质 |
CN112988223B (zh) * | 2021-03-25 | 2023-08-04 | 北京百度网讯科技有限公司 | 框架集成方法、装置、电子设备及存储介质 |
CN113315820A (zh) * | 2021-05-20 | 2021-08-27 | 西安华讯科技有限责任公司 | 一种构建实体网格网络方法及装置 |
CN113315820B (zh) * | 2021-05-20 | 2022-11-08 | 西安华讯科技有限责任公司 | 一种构建实体网格网络方法及装置 |
CN114138375A (zh) * | 2021-12-30 | 2022-03-04 | 高新兴智联科技有限公司 | 一种物联网服务云架构及应用该云架构的射频测试系统 |
CN114650276A (zh) * | 2022-02-24 | 2022-06-21 | 北京健康之家科技有限公司 | 业务请求处理方法、电子设备终端及存储介质 |
CN115103028A (zh) * | 2022-07-22 | 2022-09-23 | 深圳竹云科技股份有限公司 | SaaS应用的请求处理方法、装置、计算机设备 |
CN115643306A (zh) * | 2022-09-07 | 2023-01-24 | 上海浦东发展银行股份有限公司 | 一种网格服务实例和配置的动态下发方法 |
CN115643306B (zh) * | 2022-09-07 | 2024-07-23 | 上海浦东发展银行股份有限公司 | 一种网格服务实例和配置的动态下发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112311786B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311786B (zh) | 一种服务请求处理方法、装置、存储介质及计算设备 | |
US11726828B2 (en) | Managing a virtualized application workspace on a managed computing device | |
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
US10198162B2 (en) | Method for installing or upgrading an application | |
CN109981716B (zh) | 一种微服务调用方法及装置 | |
CN102185900B (zh) | 一种应用服务平台系统和一种开发应用服务的方法 | |
US9003478B2 (en) | Enforcement of conditional policy attachments | |
US7433935B1 (en) | Self-adapting plug-in service | |
US8719338B2 (en) | Servicing database operations using a messaging server | |
EP2352083B1 (en) | Method, device and system for enhancing script-based application reliability | |
CN110311837B (zh) | 在线业务可用性检测方法、装置及计算机设备 | |
CN110580305B (zh) | 生成标识符的方法、装置、系统和介质 | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN102523308A (zh) | 一种应用开发方法和运行该方法所开发应用的平台系统 | |
CN118175209A (zh) | 一种路由方法、微服务系统、设备及存储介质 | |
WO2024066503A1 (zh) | 服务调用方法及装置 | |
CN112256351A (zh) | Feign组件的实现方法、微服务调用方法及装置 | |
CN114356456B (zh) | 业务处理方法、装置、存储介质和电子设备 | |
CN110401686B (zh) | Whois查询方法、装置、设备及其存储介质 | |
CN117311854B (zh) | 微服务治理方法、装置、电子设备及可读取存储介质 | |
TW201828093A (zh) | 訪問請求轉換的方法和裝置 | |
CN118524149A (zh) | 微服务治理方法、装置、终端设备以及存储介质 | |
CN118193355A (zh) | 代码的测试方法、存储介质与设备 | |
CN116016668A (zh) | 数据访问请求的处理方法和装置 | |
CN115378993A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: Beijing Health Home Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |