一种Dubbo框架集成Istio服务网格的方法技术

技术编号:24330799 阅读:95 留言:0更新日期:2020-05-29 19:32
本发明专利技术公开了一种Dubbo框架集成Istio服务网格的方法,属于云计算技术领域。本发明专利技术的Dubbo框架集成Istio服务网格的方法,将Dubbo框架的服务发现和远程调用功能与Istio服务网格的服务治理功能深度结合,实现对使用Dubbo服务的应用进行服务治理。该发明专利技术的Dubbo框架集成Istio服务网格的方法可以将基于Dubbo的业务无缝的在云上部署使用,减少服务故障率,并对服务之间通信结果和通信效率都可以方便的进行数据统计,具有很好的推广应用价值。

A method of integrating istio service grid with Dubbo framework

【技术实现步骤摘要】
一种Dubbo框架集成Istio服务网格的方法
本专利技术涉及云计算
,具体提供一种Dubbo框架集成Istio服务网格的方法。
技术介绍
目前云计算技术正在趋于成熟,使用部署在云上的应用、服务越来越多。随着软件的发展和演变,微服务架构成为了现在主流的架构,在这种架构下,不同功能的程序被当作一个服务部署在运行环境中,在这里也就是部署在云中。而Dubbo是一个远程服务调用的分布式框架,可以透明化服务之间的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。但是Dubbo并没有服务治理的功能,如果与Istio服务网格进行结合,就可以弥补这一功能的缺失。但是直接使用DubboRPC远程调用的方式,就会绕过Istio服务治理的范围,所以将Dubbo框架和Istio服务网格进行深度的结合,以实现治理Dubbo服务的目的成为亟待解决的问题。
技术实现思路
本专利技术的技术任务是针对上述存在的问题,提供一种可以将基于Dubbo的业务无缝的在云上部署使用,减少服务故障率,并对服务之间通信结果和通信效率都可以方便的进行数据统计的Dubbo框架集成Istio服务网格的方法。为实现上述目的,本专利技术提供了如下技术方案:一种Dubbo框架集成Istio服务网格的方法,该方法将Dubbo框架的服务发现和远程调用功能与Istio服务网格的服务治理功能深度结合,实现对使用Dubbo服务的应用进行服务治理。作为优选,该Dubbo框架集成Istio服务网格的方法包括以下步骤:S1、改造IstioPilot组件,增加监控注册中心的类型,将获取到的数据转换成通用配置下发到数据层面;注册中心存储着服务提供方注册的远程服务,并将其所管理的服务列表通知给服务调用方,且注册中心和提供方和服务调用方之间均保持长连接,可以获取提供方发布的服务的变化情况,并将最新的服务列表推送给服务调用方。Pilot起到Istio控制层面到数据层面Envoy之间的桥梁作用,并监控服务注册中心(如Kubernetes)的服务注册情况。在Kubernetes环境下,会监控service、endpoint、pod、node等资源信息。由以上可知只需要Pilot组件来监听Dubbo的注册中心,获取里面的服务数据,并及时将服务的变化下发到数据层面的Envoy中,这样就可以保证服务发现的功能可用。现在的Pilot监控的注册中心主要是Kubernetes,并没有监控Dubbo常用注册中心的功能,因此需要增加监控注册中心的类型。S2、数据层面适配Dubbo协议,在Envoy组件中增加处理Dubbo协议的Filter接口;在Istio服务网格中,数据层面使用Envoy组件,所有服务流量将由它完成服务发现与路由中转。因此需要在Envoy中增加一个处理Dubbo协议的Filter接口。S3、Dubbo框架和Istio服务网格进行交互。作为优选,步骤S1中增加的监控注册中心类型为Zookeeper。作为优选,Envoy组件收到DubboRPC请求动态地创建Fitler去处理,将这个请求转发到相应的Filter进行处理,在Filter中获取到DubboRPC请求要访问的服务,将服务提取出来,并把请求转发到其他的Filter接口,进行后续的流量治理。作为优选,步骤S3具体包括以下流程:1)系统启动,首先启动监控注册中心Zookeeper和Istio控制层面的Pilot组件;2)Dubbo应用启动,将Dubbo自身的信息注册到监控注册中心Zookeeper当中;3)Dubbo组件间的通信,B组件调用A组件的服务,B组件发送一个RPC请求,Dubbo发送RPC请求时,找到A组件的服务提供者的所有实例的IP地址,并选择一个IP地址作为目的地址进行访问。作为优选,Istio控制层面的Pilot组件监听Zookeeper中存储的Dubbo服务提供者的信息,当服务发生改变时,Pilot及时感知。作为优选,Dubbo自身的信息注册到Zookeeper后,Pilot组件感知到注册中心的数据发生的变化,拉取新的服务配置,Pilot组件将配置下发到每个数据层面,即Envoy组件里。作为优选,B组件调用调用A组件服务时,用A组件的服务名称作为目的地址来访问。作为优选,B组件发送一个RPC请求之后,被数据层面的Envoy拦截,Envoy判断出请求是Dubbo协议的请求,将请求转给Envoyfilter。EnvoyFilter提取出这个请求的目的地址,将这个请求转给Filter链中的下一个处理Filter。在这之前Pilot已经通过监控注册中心Zookeeper,获取了服务对应的所有实例IP地址,并将这个配置下发了Envoy,所以这个时候Envoy可以找到目的地址所对应的所有实例IP,并选择一个实例IP,将请求发送出去。与现有技术相比,本专利技术的Dubbo框架集成Istio服务网格的方法具有以下突出的有益效果:(一)所述Dubbo框架集成Istio服务网格的方法将基于Dubbo的业务可以无缝的在云上部署使用,减少服务故障率;(二)可以对使用DubboRPC进行通信的服务纳入Istio服务网格的范围,对这些服务进行流量治理;(三)可以更加方便的监控使用DubboRPC进行通信的服务,对服务之间通信结果,通信效率都可以方便的进行数据统计,具有良好的推广应用价值。附图说明图1是本专利技术所述Dubbo框架集成Istio服务网格的方法中Dubbo应用启动时的配置变化流程图;图2是本专利技术所述Dubbo框架集成Istio服务网格的方法中Dubbo应用之间通信的流程图。具体实施方式下面将结合附图和实施例,对本专利技术的Dubbo框架集成Istio服务网格的方法作进一步详细说明。实施例本专利技术的Dubbo框架集成Istio服务网格的方法,将Dubbo框架的服务发现和远程调用功能与Istio服务网格的服务治理功能深度结合,实现对使用Dubbo服务的应用进行服务治理。该Dubbo框架集成Istio服务网格的方法包括以下步骤:S1、改造IstioPilot组件,增加监控注册中心的类型,将获取到的数据转换成通用配置下发到数据层面。注册中心存储着服务提供方注册的远程服务,并将其所管理的服务列表通知给服务调用方,且注册中心和提供方和服务调用方之间均保持长连接,可以获取提供方发布的服务的变化情况,并将最新的服务列表推送给服务调用方。Pilot起到Istio控制层面到数据层面Envoy之间的桥梁作用,并监控服务注册中心(如Kubernetes)的服务注册情况。在Kubernetes环境下,会监控service、endpoint、pod、node等资源信息。由以上可知只需要Pilot组件来监听Dubbo的注册中心,获取里面的服务数据,并及时将服务的变化下发到数据层面的Envoy中,这样就可以保本文档来自技高网...

【技术保护点】
1.一种Dubbo框架集成Istio服务网格的方法,其特征在于:该方法将Dubbo框架的服务发现和远程调用功能与Istio服务网格的服务治理功能深度结合,实现对使用Dubbo服务的应用进行服务治理。/n

【技术特征摘要】
1.一种Dubbo框架集成Istio服务网格的方法,其特征在于:该方法将Dubbo框架的服务发现和远程调用功能与Istio服务网格的服务治理功能深度结合,实现对使用Dubbo服务的应用进行服务治理。


2.根据权利要求1所述的Dubbo框架集成Istio服务网格的方法,其特征在于:包括以下步骤:
S1、改造IstioPilot组件,增加监控注册中心的类型,将获取到的数据转换成通用配置下发到数据层面;
S2、数据层面适配Dubbo协议,在Envoy组件中增加处理Dubbo协议的Filter接口;
S3、Dubbo框架和Istio服务网格进行交互。


3.根据权利要求2所述的Dubbo框架集成Istio服务网格的方法,其特征在于:步骤S1中增加的监控注册中心类型为Zookeeper。


4.根据权利要求3所述的Dubbo框架集成Istio服务网格的方法,其特征在于:Envoy组件收到DubboRPC请求动态地创建Fitler去处理,将这个请求转发到相应的Filter进行处理,在Filter中获取到DubboRPC请求要访问的服务,将服务提取出来,并把请求转发到其他的Filter接口,进行后续的流量治理。


5.根据权利要求4所述的Dubbo框架集成Istio服务网格的方法,其特征在于:步骤S3具体包括以下流程:
1)系统启动,首先启动监控注册中心Zookeeper和Istio控制层面的Pilot组件...

【专利技术属性】
技术研发人员:陈正伟王刚高传集
申请(专利权)人:山东汇贸电子口岸有限公司
类型:发明
国别省市:山东;37

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

1