CN114237704B - 一种spring-cloud-alibaba nacos框架集成istio的方法 - Google Patents

一种spring-cloud-alibaba nacos框架集成istio的方法 Download PDF

Info

Publication number
CN114237704B
CN114237704B CN202111345679.4A CN202111345679A CN114237704B CN 114237704 B CN114237704 B CN 114237704B CN 202111345679 A CN202111345679 A CN 202111345679A CN 114237704 B CN114237704 B CN 114237704B
Authority
CN
China
Prior art keywords
nacos
serviceentry
istio
adapter
registry
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.)
Active
Application number
CN202111345679.4A
Other languages
English (en)
Other versions
CN114237704A (zh
Inventor
李少波
吴封斌
蒲睿强
王璐
王晋冰
张磊
杨静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guizhou University
Guiyang Office of Guizhou Tobacco Corp
Original Assignee
Guizhou University
Guiyang Office of Guizhou Tobacco Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guizhou University, Guiyang Office of Guizhou Tobacco Corp filed Critical Guizhou University
Priority to CN202111345679.4A priority Critical patent/CN114237704B/zh
Publication of CN114237704A publication Critical patent/CN114237704A/zh
Application granted granted Critical
Publication of CN114237704B publication Critical patent/CN114237704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种spring‑cloud‑alibaba nacos框架集成istio的方法,属于程序控制技术领域,包括前提构建,安装并运行Nacos后,将开发符合需求的微服务打成jar包,测试并运行;再将Nacos与Istio融合,针对nacos注册中心编写适配器,将注册中心数据转换为Istio的ServiceEntry资源,并将ServiceEntry资源写入到K8S中,Pilot通过自动监听资源对象的变化并及时感知,将ServiceEntry转换为Pilot的内部服务模型,进而再下发到网格的各个SideCar中。本发明的有益效果:通过对注册中心附加适配器模式,可以很好地将Nacos与istio进行结合,降低以往代码的耦合性,从而实现Nacos做配置中心、服务注册,进一步实现使用istio提供的微服务限流、访问控制和端到端安全访问认证功能。

Description

一种spring-cloud-alibaba nacos框架集成istio的方法
技术领域
本发明涉及程序控制技术领域,尤其涉及一种spring-cloud-alibaba nacos框架集成istio的方法。
背景技术
随着信息时代的蓬勃发展,系统复杂度越来越高,处理的数据量也越来越大。单体架构在规模比较小的情况下工作情况良好,但是随着系统规模的扩大,它暴露出来的问题也越来越多。规模扩大对系统的水平扩展能力提出了极高的要求,微服务应用应运而生。
微服务是指在功能不变的情况下,把一个大型的单个应用程序和服务拆分为多个可管理的服务。每个服务根据自己的需要选择技术栈,互不影响,方便开发、维护,好处是有效的拆分应用,实现敏捷开发和部署。当企业微服务化以后,服务之间会有错综复杂的依赖关系,例如,一个前端请求一般会依赖于多个后端服务。在实际生产环境中,服务往往不是百分百可靠,可能会出错或者产生延迟,如果一个应用不能对其依赖的故障进行容错和隔离,那么该应用本身就处在被拖垮的风险中。当该类请求越来越多,占用的计算机资源越来越多的时候,会导致系统瓶颈出现,造成其他的请求同样不可用,最终导致业务系统崩溃。
为了防止此类问题的出现,微服务在其架构中加入了服务治理相关策略,如服务限流、降级、熔断、容错等。微服务治理早期技术依赖于库,作为应用程序代码的一部分进行部署。然而服务治理与代码一起部署,很难实现对多达上百个甚至上千个微服务限流、访问控制和端到端安全访问认证等需求。
发明内容
为此,本发明提供一种spring-cloud-alibaba nacos框架集成istio的方法,用以克服现有技术中实现对多达上百个甚至上千个微服务限流、访问控制和端到端安全访问认证等需求的技术问题。
为实现上述目的,本发明提供一种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 APIServer中资源对象的变化;当所述资源发生改变时,所述Pilot及时感知并将所述ServiceEntry转换为Pilot的内部服务模型;
s023,所述Pilot通过标准的Envoy API将所述ServiceEntry资源下发到网格的各个SideCar中以完成Nacos与Istio的融合。
进一步地,所述步骤s01包括以下过程:
s011,在SpringBoot快速开发框架中整合spring-cloud-alibaba;
s012,安装并运行所述Nacos;
s013,根据新建Module,依次修改POM文件和YML文件以及删除多余的文件和文件夹,设置主启动并开发业务类,用以开发符合需求的微服务;
s014,将已开发的微服务打成jar包;
s015,在生成环境部署所述jar包,测试并正常运行。
进一步地,所述适配器工作过程包括:
步骤a,根据LongPollingRunnable执行长轮询,检查服务端dataId,并通过发生变化的所述服务端dataId到Server端查询配置信息;
步骤b,将查询到的所述配置信息进行资源转换,将其转换为所述ServiceEntry资源;
步骤c,最终将所述服务端dataId和新的配置信息更新到本地快照中;
步骤d,同时将所述新的配置信息下发到所述K8S中。
进一步地,所述Nacos为所述spring-cloud-alibaba的注册中心和配置中心。
进一步地,所述适配器用以实现所述Nacos客户端API。
进一步地,所述适配器根据事先设定的机制,对所述注册中心进行无感知监控;若有信息变动,所述适配器拉取注册中心信息,通过适配器的处理转为所述Istio支持的ServiceEntry资源;若无信息变动,不进行处理。
与现有技术相比,本发明的有益效果在于,
除了Kubernetes和Consul之外,原生Istio代码不支持其他服务注册表,但通过对注册中心附加适配器模式,可以很好地将Nacos与istio进行结合,降低以往代码的耦合性,从而实现Nacos做配置中心、服务注册,进一步实现使用istio提供的微服务限流、访问控制和端到端安全访问认证功能。
附图说明
图1为本发明所述spring-cloud-alibaba nacos框架集成istio的方法流程图;
图2为本发明所述K8S负载下的服务架构图;
图3为本发明所述信息更新状态流程图;
图4为本发明所述适配器工作图。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
本发明提供一种spring-cloud-alibaba nacos框架集成istio的方法,请参阅图1所示,可以按照如下方式予以实施:本方法包括以下步骤:
s01,前提构建;
s02,将Nacos与Istio融合,其中,融合过程包括:
s021,针对nacos注册中心编写适配器,将拉取到的注册中心数据转换为Istio的ServiceEntry资源,并将所述ServiceEntry资源通过K8S API Server的接口写入到K8S中;
s022,所述Istio的组件Pilot的Kube Config Controller自动监听所述K8S APIServer中资源对象的变化;当所述资源发生改变时,所述Pilot及时感知并将所述ServiceEntry转换为Pilot的内部服务模型;
s023,所述Pilot通过标准的Envoy API将所述ServiceEntry资源下发到网格的各个SideCar中以完成Nacos与Istio的融合。
具体而言,所述步骤s01包括以下过程:
s011,在SpringBoot快速开发框架中整合spring-cloud-alibaba;
s012,安装并运行所述Nacos;
s013,根据新建Module,依次修改POM文件和YML文件以及删除多余的文件和文件夹,设置主启动并开发业务类,用以开发符合需求的微服务;
s014,将已开发的微服务打成jar包;
s015,在生成环境部署所述jar包,测试并正常运行。
具体而言,所述Nacos为所述spring-cloud-alibaba的注册中心和配置中心。
具体而言,所述适配器用以实现所述Nacos客户端API。
具体而言,所述适配器根据事先设定的机制,对所述注册中心进行无感知监控;若有信息变动,所述适配器拉取注册中心信息,通过适配器的处理转为Istio支持的ServiceEntry资源;若无信息变动,不进行处理。
具体而言,如图2所示,K8S负载下的服务架构图解释如下:
A、服务提供者把当前自己服务器的信息,如服务地址通讯地址等以别名方式注册到注册中心Nacos上,同时也可以在Nacos上添加相关配置信息;
B、适配器根据事先设定的机制,对注册中心进行无感知监控;
C、若有信息变动拉取注册中心信息,通过适配器的处理转为Istio支持的ServiceEntry资源;否则,不进行处理;
D、将ServiceEntry资源注入K8S中;
E、Piolt感知K8S中信息变动,将ServiceEntry资源转换为Piolt的内部服务模型;
F、之后Pilot会将这些配置下发到每个数据层面,即Envoy组件里面。
具体而言,如图3所示,在K8S工作负载下,从Nacos启动注册信息发生变化到istio信息变化流程图下:
A、启动服务端Nacos软件;
B、系统启动,相关微服务注册到Nacos注册中心;
C、通过Nacos到Istio适配器模块,将拉取到的注册中心数据转换为Istio的ServiceEntry资源;
D、通过K8S API Server的接口写入到K8S中;
E、Polit组件的Kube Config Controller自动监听K8S API Server中资源对象的变化;
F、将ServiceEntry转换为Piolt的内部服务模型;
G、最后通过标准的Envoy API下发到网格中的各个SideCar中,完成从Nacos到Istio变化。
具体而言,如图4所示,适配器的工作过程如下:
A、根据LongPollingRunnable执行长轮询,检查服务端哪些dataId发生了变化,然后通过得到的dataId到Server端查询配置信息;
B、将查询到的配置信息进行资源转换,将其转换为ServiceEntry资源;
C、最终将dataId和新的配置信息更新到本地快照中;
D、同时将新的配置信息下发到K8S中。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

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 APIServer中资源对象的变化;当所述资源发生改变时,所述Pilot及时感知并将所述ServiceEntry转换为Pilot的内部服务模型;
s023,所述Pilot通过标准的Envoy API将所述ServiceEntry资源下发到网格的各个SideCar中以完成Nacos与Istio的融合;
所述步骤s01包括以下过程:
s011,在SpringBoot快速开发框架中整合spring-cloud-alibaba;
s012,安装并运行所述Nacos;
s013,根据新建Module,依次修改POM文件和YML文件以及删除多余的文件和文件夹,设置主启动并开发业务类,用以开发符合需求的微服务;
s014,将已开发的所述微服务打成jar包;
s015,在生成环境部署所述jar包,测试并正常运行;
所述适配器工作过程包括:
步骤a,根据LongPollingRunnable执行长轮询,检查服务端dataId,并通过发生变化的所述服务端dataId到Server端查询配置信息;
步骤b,将查询到的所述配置信息进行资源转换,将其转换为所述ServiceEntry资源;
步骤c,最终将所述服务端dataId和新的配置信息更新到本地快照中;
步骤d,同时将所述新的配置信息下发到所述K8S中;
所述适配器根据事先设定的机制,对所述注册中心进行无感知监控;若有信息变动,所述适配器拉取注册中心信息,通过适配器的处理转为所述Istio支持的ServiceEntry资源;若无信息变动,不进行处理。
2.根据权利要求1所述的spring-cloud-alibaba nacos框架集成istio的方法,其特征在于,所述Nacos为所述spring-cloud-alibaba的注册中心和配置中心。
3.根据权利要求1所述的spring-cloud-alibaba nacos框架集成istio的方法,其特征在于,所述适配器用以实现所述Nacos客户端API。
CN202111345679.4A 2021-11-15 2021-11-15 一种spring-cloud-alibaba nacos框架集成istio的方法 Active CN114237704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111345679.4A CN114237704B (zh) 2021-11-15 2021-11-15 一种spring-cloud-alibaba nacos框架集成istio的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111345679.4A CN114237704B (zh) 2021-11-15 2021-11-15 一种spring-cloud-alibaba nacos框架集成istio的方法

Publications (2)

Publication Number Publication Date
CN114237704A CN114237704A (zh) 2022-03-25
CN114237704B true CN114237704B (zh) 2023-06-09

Family

ID=80749547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111345679.4A Active CN114237704B (zh) 2021-11-15 2021-11-15 一种spring-cloud-alibaba nacos框架集成istio的方法

Country Status (1)

Country Link
CN (1) CN114237704B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065720B (zh) * 2022-06-15 2024-02-13 中电云计算技术有限公司 一种自动适配多个外部注册中心到服务网格Istio的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246251A (zh) * 2018-11-13 2019-01-18 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CN111209127A (zh) * 2020-01-13 2020-05-29 山东汇贸电子口岸有限公司 一种Dubbo框架集成Istio服务网格的方法
WO2021203968A1 (zh) * 2020-10-28 2021-10-14 平安科技(深圳)有限公司 多注册中心的微服务统一管理方法、装置、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9686121B2 (en) * 2013-09-23 2017-06-20 Amazon Technologies, Inc. Client-premise resource control via provider-defined interfaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246251A (zh) * 2018-11-13 2019-01-18 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CN111209127A (zh) * 2020-01-13 2020-05-29 山东汇贸电子口岸有限公司 一种Dubbo框架集成Istio服务网格的方法
WO2021203968A1 (zh) * 2020-10-28 2021-10-14 平安科技(深圳)有限公司 多注册中心的微服务统一管理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN114237704A (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
US10705808B2 (en) Software defined network controller
US11789721B1 (en) Systems and methods for infrastructure and middleware provisioning
CN1407441B (zh) 自动管理计算机服务和可编程器件的系统和方法
US9893940B1 (en) Topologically aware network device configuration
US8881136B2 (en) Identifying optimal upgrade scenarios in a networked computing environment
US20060168575A1 (en) Defining a software deployment
CN111666189B (zh) 一种声明式可视化配置Prometheus监控告警的方法和系统
US20060259594A1 (en) Progressive deployment and maintenance of applications on a set of peer nodes
CA2789393A1 (en) Method, computer program product and computer-readable storage medium for the generic creation of a structure tree for describing an it process
CN114138754A (zh) 基于Kubernetes平台的软件部署方法及装置
CN103226493A (zh) 多操作系统业务的部署方法和系统
KR102442296B1 (ko) IoT 기반 가변 재구성 유연 조립 시스템 및 생산 라인 재구성 방법
US7434041B2 (en) Infrastructure for verifying configuration and health of a multi-node computer system
JP2008191878A (ja) 遠隔診断・障害対応システム、遠隔診断・障害対応装置、遠隔診断・障害対応指示装置、遠隔診断・障害対応方法、及び遠隔診断・障害対応プログラム
CN114237704B (zh) 一种spring-cloud-alibaba nacos框架集成istio的方法
KR102114339B1 (ko) 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법
US10841171B2 (en) Method and system for virtual network service activation
CN113127009A (zh) 大数据管理平台的自动化部署方法和装置
CN113193981A (zh) 一种配置下发方法及装置、网络系统
EP4130982A1 (en) Network-based solution module deployment platform
US10572805B2 (en) Service modeling and execution
CN107181629B (zh) 一种组件升级方法及系统
WO2023243076A1 (ja) クラウド上の仮想化ネットワーク機能を管理するために当該クラウドとライフサイクルマネージャの間で行われる通信に対する調整
US11954469B2 (en) Bases for pattern-based cloud computing
EP3582440A1 (en) Method and system for virtual network service activation

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
GR01 Patent grant
GR01 Patent grant