CN114237704B - 一种spring-cloud-alibaba nacos框架集成istio的方法 - Google Patents
一种spring-cloud-alibaba nacos框架集成istio的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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的方法,包括以下步骤:
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。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065720B (zh) * | 2022-06-15 | 2024-02-13 | 中电云计算技术有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
Citations (3)
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)
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 |
-
2021
- 2021-11-15 CN CN202111345679.4A patent/CN114237704B/zh active Active
Patent Citations (3)
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 |