一种spring-cloud-alibabanacos框架集成istio的方法技术

技术编号:32821654 阅读:32 留言:0更新日期:2022-03-26 20:19
本发明专利技术涉及一种spring

【技术实现步骤摘要】
一种spring

cloud

alibaba nacos框架集成istio的方法


[0001]本专利技术涉及程序控制
,尤其涉及一种spring

cloud

alibaba nacos框架集成istio的方法。

技术介绍

[0002]随着信息时代的蓬勃发展,系统复杂度越来越高,处理的数据量也越来越大。单体架构在规模比较小的情况下工作情况良好,但是随着系统规模的扩大,它暴露出来的问题也越来越多。规模扩大对系统的水平扩展能力提出了极高的要求,微服务应用应运而生。
[0003]微服务是指在功能不变的情况下,把一个大型的单个应用程序和服务拆分为多个可管理的服务。每个服务根据自己的需要选择技术栈,互不影响,方便开发、维护,好处是有效的拆分应用,实现敏捷开发和部署。当企业微服务化以后,服务之间会有错综复杂的依赖关系,例如,一个前端请求一般会依赖于多个后端服务。在实际生产环境中,服务往往不是百分百可靠,可能会出错或者产生延迟,如果一个应用不能对其依赖的故障进行容错和隔离,那么该应用本身就处在被拖垮的风险中。当该类请求越来越多,占用的计算机资源越来越多的时候,会导致系统瓶颈出现,造成其他的请求同样不可用,最终导致业务系统崩溃。
[0004]为了防止此类问题的出现,微服务在其架构中加入了服务治理相关策略,如服务限流、降级、熔断、容错等。微服务治理早期技术依赖于库,作为应用程序代码的一部分进行部署。然而服务治理与代码一起部署,很难实现对多达上百个甚至上千个微服务限流、访问控制和端到端安全访问认证等需求。

技术实现思路

[0005]为此,本专利技术提供一种spring

cloud

alibaba nacos框架集成istio的方法,用以克服现有技术中实现对多达上百个甚至上千个微服务限流、访问控制和端到端安全访问认证等需求的技术问题。
[0006]为实现上述目的,本专利技术提供一种spring

cloud

alibaba nacos框架集成istio的方法,包括以下步骤:
[0007]s01,前提构建;
[0008]s02,将Nacos与Istio融合,其中,融合过程包括:
[0009]s021,针对nacos注册中心编写适配器,将拉取到的注册中心数据转换为Istio的ServiceEntry资源,并将所述ServiceEntry资源通过K8S API Server的接口写入到K8S中;
[0010]s022,所述Istio的组件Pilot的Kube Config Controller自动监听所述K8S API Server中资源对象的变化;当所述资源发生改变时,所述Pilot及时感知并将所述ServiceEntry转换为Pilot的内部服务模型;
[0011]s023,所述Pilot通过标准的Envoy API将所述ServiceEntry资源下发到网格的各个SideCar中以完成Nacos与Istio的融合。
[0012]进一步地,所述步骤s01包括以下过程:
[0013]s011,在SpringBoot快速开发框架中整合spring

cloud

alibaba;
[0014]s012,安装并运行所述Nacos;
[0015]s013,根据新建Module,依次修改POM文件和YML文件以及删除多余的文件和文件夹,设置主启动并开发业务类,用以开发符合需求的微服务;
[0016]s014,将已开发的微服务打成jar包;
[0017]s015,在生成环境部署所述jar包,测试并正常运行。
[0018]进一步地,所述适配器工作过程包括:
[0019]步骤a,根据LongPollingRunnable执行长轮询,检查服务端dataId,并通过发生变化的所述服务端dataId到Server端查询配置信息;
[0020]步骤b,将查询到的所述配置信息进行资源转换,将其转换为所述ServiceEntry资源;
[0021]步骤c,最终将所述服务端dataId和新的配置信息更新到本地快照中;
[0022]步骤d,同时将所述新的配置信息下发到所述K8S中。
[0023]进一步地,所述Nacos为所述spring

cloud

alibaba的注册中心和配置中心。
[0024]进一步地,所述适配器用以实现所述Nacos客户端API。
[0025]进一步地,所述适配器根据事先设定的机制,对所述注册中心进行无感知监控;若有信息变动,所述适配器拉取注册中心信息,通过适配器的处理转为所述Istio支持的ServiceEntry资源;若无信息变动,不进行处理。
[0026]与现有技术相比,本专利技术的有益效果在于,
[0027]除了Kubernetes和Consul之外,原生Istio代码不支持其他服务注册表,但通过对注册中心附加适配器模式,可以很好地将Nacos与istio进行结合,降低以往代码的耦合性,从而实现Nacos做配置中心、服务注册,进一步实现使用istio提供的微服务限流、访问控制和端到端安全访问认证功能。
附图说明
[0028]图1为本专利技术所述spring

cloud

alibaba nacos框架集成istio的方法流程图;
[0029]图2为本专利技术所述K8S负载下的服务架构图;
[0030]图3为本专利技术所述信息更新状态流程图;
[0031]图4为本专利技术所述适配器工作图。
具体实施方式
[0032]为了使本专利技术的目的和优点更加清楚明白,下面结合实施例对本专利技术作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本专利技术,并不用于限定本专利技术。
[0033]下面参照附图来描述本专利技术的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本专利技术的技术原理,并非在限制本专利技术的保护范围。
[0034]需要说明的是,在本专利技术的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0035]此外,还需要说明的是,在本专利技术的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本专利技术中的具体含义。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种spring

cloud

alibaba nacos框架集成istio的方法,其特征在于,包括以下步骤:s01,前提构建;s02,将Nacos与Istio融合,其中,融合过程包括:s021,针对nacos注册中心编写适配器,将拉取到的注册中心数据转换为Istio的ServiceEntry资源,并将所述ServiceEntry资源通过K8S API Server的接口写入到K8S中;s022,所述Istio的核心组件Pilot中Kube Config Controller自动监听所述K8S API Server中资源对象的变化;当所述资源发生改变时,所述Pilot及时感知并将所述ServiceEntry转换为Pilot的内部服务模型;s023,所述Pilot通过标准的Envoy API将所述ServiceEntry资源下发到网格的各个SideCar中以完成Nacos与Istio的融合。2.根据权利要求1所述的spring

cloud

alibaba nacos框架集成istio的方法,其特征在于,所述步骤s01包括以下过程:s011,在SpringBoot快速开发框架中整合spring

cloud

alibaba;s012,安装并运行所述Nacos;s013,根据新建Module,依次修改POM文件和YML文件以及删除多余的文件和文件夹,设置主启动并开发业务类,用以开发符合需求的微服务;s014,将已开发的所述微服务打成jar包;s015,在生成环境部署所述jar包,测试并...

【专利技术属性】
技术研发人员:李少波吴封斌蒲睿强王璐王晋冰张磊杨静
申请(专利权)人:贵州省烟草公司贵阳市公司
类型:发明
国别省市:

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

1