服务访问方法和装置制造方法及图纸

技术编号:27058958 阅读:9 留言:0更新日期:2021-01-15 14:38
本申请公开了一种服务访问方法和装置,涉及通信网络技术领域,所述方法包括:获取服务访问请求,所述服务访问请求用于请求访问目标服务;检测所述目标服务是否是服务白名单中的服务;若所述目标服务是所述服务白名单中的服务,则将所述目标服务的Pod网络互连协议IP修改为服务名service name,根据所述service name调用所述目标服务;若所述目标服务不是所述服务白名单中的服务,则根据所述目标服务的Pod IP调用所述目标服务。解决了现有设计无法满足业务场景的需求的问题,达到了可以以服务白名单的方式实现应用级别的架构升级,让微服务的网络调用同时支持Spring Cloud和Service Mesh两种机制,进而使架构升级更加平滑稳定。

【技术实现步骤摘要】
服务访问方法和装置
本专利技术涉及服务访问方法和装置,属于通信网络

技术介绍
现有SpringCloud体系下,服务调用为客户端服务通过服务名从Consul获取到服务端服务的Pod信息,然后直连到Pod进行网络调用。在从SpringCloud体系至ServiceMesh的过渡期内,为了保证服务的稳定性,往往是一小部分服务先升级,一部分服务保持不变,等升级的服务稳定之后,再全量升级。而现有两套网络调用都只能以自己的方式独立运行,无法满足真实的业务场景的需求。
技术实现思路
本专利技术的目的在于提供一种服务访问方法和装置,用于解决现有技术中存在的问题。为达到上述目的,本专利技术提供如下技术方案:根据第一方面,本专利技术实施例提供了一种服务访问方法,所述方法包括:获取服务访问请求,所述服务访问请求用于请求访问目标服务;检测所述目标服务是否是服务白名单中的服务;若所述目标服务是所述服务白名单中的服务,则将所述目标服务的Pod网络互连协议IP修改为服务名servicename,根据所述servicename调用所述目标服务;若所述目标服务不是所述服务白名单中的服务,则根据所述目标服务的PodIP调用所述目标服务。可选的,所述根据所述servicename调用所述目标服务,包括:根据所述servicename通过iptables路由策略转发所述服务访问请求至ServiceMesh的sidecar,并调用所述目标服务。可选的,所述根据所述servicename调用所述目标服务,包括:通过Envoy拦截通过所述servicename访问的所述服务访问请求,并通过Envoy调用所述目标服务。可选的,若采用Feign的调用方式调用服务,则所述检测所述目标服务是否是服务白名单中的服务,包括:通过负载均衡算法从至少两个服务实例中选择一个服务实例;通过选择的所述服务实例检测所述目标服务是否是服务白名单中的服务。可选的,所述将所述目标服务的Pod网络互连协议IP修改为服务名servicename,包括:若所述目标服务是所述服务白名单中的服务,则将PodServerInfo中的PodIP改为servicename。可选的,若采用gRPC的调用方式调用服务,则所述检测所述目标服务是否是服务白名单中的服务,包括:在gRPCStarter通过builder创建NettyChannel时,检测所述目标服务是否是服务白名单中的服务。可选的,所述将所述目标服务的Pod网络互连协议IP修改为服务名servicename,根据所述servicename调用所述目标服务,包括:将所述目标服务的PodIP修改为所述servicename,执行创建的所述NettyChannel。可选的,所述方法还包括:在接收到所述服务访问请求之后,根据所述目标服务的servicename从Consul中获取所述servicename所对应的PodIP。第二方面,提供了一种服务访问装置,所述装置包括:获取模块,用于获取服务访问请求,所述服务访问请求用于请求访问目标服务;检测模块,用于检测所述目标服务是否是服务白名单中的服务;调用模块,用于在所述目标服务是所述服务白名单中的服务时,将所述目标服务的Pod网络互连协议IP修改为服务名servicename,根据所述servicename调用所述目标服务;在所述目标服务不是所述服务白名单中的服务时,根据所述目标服务的PodIP调用所述目标服务。通过获取服务访问请求,所述服务访问请求用于请求访问目标服务;检测所述目标服务是否是服务白名单中的服务;若所述目标服务是所述服务白名单中的服务,则将所述目标服务的Pod网络互连协议IP修改为服务名servicename,根据所述servicename调用所述目标服务;若所述目标服务不是所述服务白名单中的服务,则根据所述目标服务的PodIP调用所述目标服务。解决了现有设计无法满足业务场景的需求的问题,达到了可以以服务白名单的方式实现应用级别的架构升级,让微服务的网络调用同时支持SpringCloud和ServiceMesh两种机制,进而使架构升级更加平滑稳定。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明图1为本专利技术一个实施例提供的服务访问方法的方法流程图;图2为本专利技术一个实施例提供的服务访问装置的结构示意图。具体实施方式下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。此外,下面所描述的本专利技术不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。首先,为了便于理解,先对本申请可能涉及的专业术语做简单介绍。其中:SpringCloud:Java技术体系常用的微服务架构。ServiceMesh:服务网格。Feign:http调用中间件。gRPC:网络调用中间件。Kubernetes:容器化编排系统。Service:Kubernetes中一个服务的定义。Pod:Kubernetes中一个Service下实例的最小定义,一个Service可以有多个Pod。请参考图1,其示出了本申请一个实施例提供的服务访问方法的方法流程图,如图1所示,所述方法包括:步骤101,获取服务访问请求,所述服务访问请求用于请求访问目标服务;在需要访问目标服务时,客户端可以发出访问目标服务的服务访问请求。步骤102,检测所述目标服务是否是服务白名单中的服务;服务白名单可以为系统系统默认的服务名单,也可以为自定义的名单,并且实际实现时,服务白名单还可以根据需求本文档来自技高网...

【技术保护点】
1.一种服务访问方法,其特征在于,所述方法包括:/n获取服务访问请求,所述服务访问请求用于请求访问目标服务;/n检测所述目标服务是否是服务白名单中的服务;/n若所述目标服务是所述服务白名单中的服务,则将所述目标服务的Pod网络互连协议IP修改为服务名service name,根据所述service name调用所述目标服务;/n若所述目标服务不是所述服务白名单中的服务,则根据所述目标服务的Pod IP调用所述目标服务。/n

【技术特征摘要】
1.一种服务访问方法,其特征在于,所述方法包括:
获取服务访问请求,所述服务访问请求用于请求访问目标服务;
检测所述目标服务是否是服务白名单中的服务;
若所述目标服务是所述服务白名单中的服务,则将所述目标服务的Pod网络互连协议IP修改为服务名servicename,根据所述servicename调用所述目标服务;
若所述目标服务不是所述服务白名单中的服务,则根据所述目标服务的PodIP调用所述目标服务。


2.根据权利要求1所述的方法,其特征在于,所述根据所述servicename调用所述目标服务,包括:
根据所述servicename通过iptables路由策略转发所述服务访问请求至ServiceMesh的sidecar,并调用所述目标服务。


3.根据权利要求1所述的方法,其特征在于,所述根据所述servicename调用所述目标服务,包括:
通过Envoy拦截通过所述servicename访问的所述服务访问请求,并通过Envoy调用所述目标服务。


4.根据权利要求1所述的方法,其特征在于,若采用Feign的调用方式调用服务,则所述检测所述目标服务是否是服务白名单中的服务,包括:
通过负载均衡算法从至少两个服务实例中选择一个服务实例;
通过选择的所述服务实例检测所述目标服务是否是服务白名单中的服务。


5.根据权利要求4所述的方法,其特征在于,所述将所述目标服务的Pod网络互连协议IP修改为服务名servicename,包括:
若所述目标服务...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:苏州斯玛维科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1