CN111010304A - 一种Dubbo服务与Kubernetes系统集成的方法 - Google Patents
一种Dubbo服务与Kubernetes系统集成的方法 Download PDFInfo
- Publication number
- CN111010304A CN111010304A CN201911334168.5A CN201911334168A CN111010304A CN 111010304 A CN111010304 A CN 111010304A CN 201911334168 A CN201911334168 A CN 201911334168A CN 111010304 A CN111010304 A CN 111010304A
- Authority
- CN
- China
- Prior art keywords
- service
- kubernets
- dubbo
- integrating
- endpoint
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种Dubbo服务与Kubernetes系统集成的方法,属于云计算技术领域。本发明的Dubbo服务与Kubernetes系统集成的方法,Kubernetes作为Dubbo的服务注册中心,服务提供者将服务发布在Kubernetes上,Dubbo从配置中读取服务提供者信息并从Kubernetes中获取服务以及关联的端点,并监听端点的变化,服务消费者通过Kubernetes的接口找到服务对应的端点来访问服务提供者。该发明的Dubbo服务与Kubernetes系统集成的方法无需依赖三方的软负载注册中心,同时无缝融入Kubernetes的多租户安全体系,具有很好的推广应用价值。
Description
技术领域
本发明涉及云计算技术领域,具体提供一种Dubbo服务与Kubernetes系统集成的方法。
背景技术
目前云计算技术正在趋于成熟,使用部署在云上的应用、服务越来越多。随着软件的发展和演变,微服务架构成为了现在主流的架构,在这种架构下,不同功能的程序被当作一个服务部署在运行环境中,在这里也就是部署在云中。而Dubbo是一个远程服务调用的分布式框架,可以透明化服务之间的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。但是Dubbo的注册中心一般是需要Zookeeper类似的存储一致性框架,所以当使用Dubbo的微服务系统放到云上之后,需要额外部署Zookeeper组件用来发现服务,这就和Kubernetes中的服务功能冗余了。Kubernetes是天然可作为微服务的地址注册中心,类似于Zookeeper。具体来说,Kubernetes中的Pod是对于应用的运行实例,Pod的被调度部署和启停都会调用API-Server的服务来保持其状态到ETCD;Kubernetes中的服务是对应微服务的概念,定义如下:Kubernetes服务是一个抽象层,它定义了一组逻辑Pod,并支持这些Pod的外部流量暴露、负载平衡和服务发现。
由于Kubernetes中的Pod会经常改变自身的IP地址,所以会造成Zookeeper中的地址和Kubernetes中存储的地址不一致,造成服务无法使用的情况,所以需要有一个将Dubbo和Kubernetes进行集成的方法,使部署在Kunernetes当中的Dubbo业务更加稳固。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种无需依赖三方的软负载注册中心,同时无缝融入Kubernetes的多租户安全体系的Dubbo服务与Kubernetes系统集成的方法。
为实现上述目的,本发明提供了如下技术方案:
一种Dubbo服务与Kubernetes系统集成的方法,使用Kubernetes作为Dubbo的服务注册中心,服务提供者将服务发布在Kubernetes上,Dubbo从配置中读取服务提供者信息并从Kubernetes中获取服务以及关联的端点,并监听端点的变化,服务消费者通过Kubernetes的接口找到服务对应的端点来访问服务提供者。
作为优选,该Dubbo服务与Kubernetes系统集成的方法包括以下步骤:
S1、Kubernetes与Dubbo的服务关联,每个服务具有唯一的名字及对应的IP,IP为Kubernetes自动分配,名字为开发者自定义;
S2、更改Dubbo服务提供者,Dubbo服务提供者更改运行时的Dubbo配置,将注册中心地址改为Kubernetes地址;
S3、更改Dubbo服务消费者,配置消费者配置,包含服务提供者的服务名称和空间名称;
S4、设计基于Kubernetes中的服务发现机制,通过自定义注册中心插件的方式来实现;
S5、实现服务发现。
作为优选,服务的IP包括ClusterIP、NodePort、LoadBalance和Ingress,其中ClusterIP用于集群内通信,NodePort、LoadBalance和Ingress用于暴露服务给集群外的访问入口。
作为优选,服务提供者将本身的服务部署在Kubernetes集群当中,并且服务名称和空间名称与Dubbo配置文件当中的相匹配。
作为优选,服务发现地址需要Kubernetes集群中的API-Server的地址。
作为优选,设计基于Kubernetes中的服务发现机制包括在服务发现中添加Kubernetes客户端的依赖、新增服务发现插件配置、解析配置中的数据、调用Kubernetes客户端来监听服务端点的变化。
作为优选,解析配置中的数据可以获取到服务名称、服务所在的命名空间和Kubernetes集群的API-Server地址,通过Kubernetes客户端访问API-Server,找到命名空间下的服务,进而找到该服务对应的端点,并将端点存储到缓存中。
作为优选,调用Kubernetes客户端来监听服务端点的变化时,若服务端点发生变化,则及时更新存储的端点缓存,保证服务的可用性。
作为优选,实现服务发现中定义负载均衡策略,选择缓存中的一个端点作为访问地址,服务消费者使用Dubbo协议进行访问,连接到服务提供者的服务上面。
与现有技术相比,本发明的Dubbo服务与Kubernetes系统集成的方法具有以下突出的有益效果:该Dubbo服务与Kubernetes系统集成的方法使用Kunernetes的特性作为注册中心,不需要再部署额外的注册中心,节省资源;将基于Dubbo的业务可以无缝的在云上部署使用,减少服务故障率,并且可以通过配置进行更改,无需侵入业务代码和Dubbo的源码,具有良好的推广应用价值。
附图说明
图1是本发明所述Dubbo服务与Kubernetes系统集成的方法的流程图;
图2是本发明所述Dubbo服务与Kubernetes系统集成的方法的服务消费者发送请求的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的Dubbo服务与Kubernetes系统集成的方法作进一步详细说明。
实施例
本发明的Dubbo服务与Kubernetes系统集成的方法,使用Kubernetes作为Dubbo的服务注册中心,服务提供者将服务发布在Kubernetes上,Dubbo从配置中读取服务提供者信息并从Kubernetes中获取服务以及关联的端点,并监听端点的变化,服务消费者通过Kubernetes的接口找到服务对应的端点来访问服务提供者。
如图1所示,该Dubbo服务与Kubernetes系统集成的方法包括以下步骤:
S1、Kubernetes与Dubbo的服务关联,每个服务具有唯一的名字及对应的IP,IP为Kubernetes自动分配,名字为开发者自定义。
服务的IP包括ClusterIP、NodePort、LoadBalance和Ingress,其中ClusterIP用于集群内通信,NodePort、LoadBalance和Ingress用于暴露服务给集群外的访问入口。
S2、更改Dubbo服务提供者,Dubbo服务提供者更改运行时的Dubbo配置,将注册中心地址改为Kubernetes地址。
服务提供者将本身的服务部署在Kubernetes集群当中,并且服务名称和空间名称与Dubbo配置文件当中的相匹配。
S3、更改Dubbo服务消费者,配置消费者配置,包含服务提供者的服务名称和空间名称。服务发现地址需要Kubernetes集群中的API-Server的地址。
S4、设计基于Kubernetes中的服务发现机制,通过自定义注册中心插件的方式来实现。
包括在服务发现中添加Kubernetes客户端的依赖、新增服务发现插件配置、解析配置中的数据、调用Kubernetes客户端来监听服务端点的变化。其中解析配置中的数据可以获取到服务名称、服务所在的命名空间和Kubernetes集群的API-Server地址,通过Kubernetes客户端访问API-Server,找到命名空间下的服务,进而找到该服务对应的端点,并将端点存储到缓存中。调用Kubernetes客户端来监听服务端点的变化时,若服务端点发生变化,则及时更新存储的端点缓存,保证服务的可用性。
S5、实现服务发现。
实现服务发现中定义负载均衡策略,选择缓存中的一个端点作为访问地址,服务消费者使用Dubbo协议进行访问,连接到服务提供者的服务上面。
如图2所示,服务消费者通过本发明的Dubbo服务与Kubernetes系统集成的方法发送请求时,读取端点缓存,使用负载均衡策略选择一个端点,并向端点发送请求,获取相应的结果后,服务结束。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (9)
1.一种Dubbo服务与Kubernetes系统集成的方法,其特征在于:使用Kubernetes作为Dubbo的服务注册中心,服务提供者将服务发布在Kubernetes上,Dubbo从配置中读取服务提供者信息并从Kubernetes中获取服务以及关联的端点,并监听端点的变化,服务消费者通过Kubernetes的接口找到服务对应的端点来访问服务提供者。
2.根据权利要求1所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:包括以下步骤:
S1、Kubernetes与Dubbo的服务关联,每个服务具有唯一的名字及对应的IP,IP为Kubernetes自动分配,名字为开发者自定义;
S2、更改Dubbo服务提供者,Dubbo服务提供者更改运行时的Dubbo配置,将注册中心地址改为Kubernetes地址;
S3、更改Dubbo服务消费者,配置消费者配置,包含服务提供者的服务名称和空间名称;
S4、设计基于Kubernetes中的服务发现机制,通过自定义注册中心插件的方式来实现;
S5、实现服务发现。
3.根据权利要求2所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:服务的IP包括ClusterIP、NodePort、LoadBalance和Ingress,其中ClusterIP用于集群内通信,NodePort、LoadBalance和Ingress用于暴露服务给集群外的访问入口。
4.根据权利要求3所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:服务提供者将本身的服务部署在Kubernetes集群当中,并且服务名称和空间名称与Dubbo配置文件当中的相匹配。
5.根据权利要求4所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:服务发现地址需要Kubernetes集群中的API-Server的地址。
6.根据权利要求5所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:设计基于Kubernetes中的服务发现机制包括在服务发现中添加Kubernetes客户端的依赖、新增服务发现插件配置、解析配置中的数据、调用Kubernetes客户端来监听服务端点的变化。
7.根据权利要求6所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:解析配置中的数据可以获取到服务名称、服务所在的命名空间和Kubernetes集群的API-Server地址,通过Kubernetes客户端访问API-Server,找到命名空间下的服务,进而找到该服务对应的端点,并将端点存储到缓存中。
8.根据权利要求7所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:调用Kubernetes客户端来监听服务端点的变化时,若服务端点发生变化,则及时更新存储的端点缓存,保证服务的可用性。
9.根据权利要求8所述的Dubbo服务与Kubernetes系统集成的方法,其特征在于:实现服务发现中定义负载均衡策略,选择缓存中的一个端点作为访问地址,服务消费者使用Dubbo协议进行访问,连接到服务提供者的服务上面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334168.5A CN111010304A (zh) | 2019-12-23 | 2019-12-23 | 一种Dubbo服务与Kubernetes系统集成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334168.5A CN111010304A (zh) | 2019-12-23 | 2019-12-23 | 一种Dubbo服务与Kubernetes系统集成的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111010304A true CN111010304A (zh) | 2020-04-14 |
Family
ID=70116868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911334168.5A Pending CN111010304A (zh) | 2019-12-23 | 2019-12-23 | 一种Dubbo服务与Kubernetes系统集成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111010304A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541765A (zh) * | 2020-04-21 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种用于多级路由调度的方法及系统 |
CN111782766A (zh) * | 2020-06-30 | 2020-10-16 | 福建健康之路信息技术有限公司 | 一种通过关键字检索Kubernetes集群中所有资源的方法和系统 |
CN111866122A (zh) * | 2020-07-18 | 2020-10-30 | 昆明理工大学 | 一种微服务处理方法、装置、客户终端 |
CN112764825A (zh) * | 2020-12-30 | 2021-05-07 | 望海康信(北京)科技股份公司 | 服务集成系统及相应设备和存储介质 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN114301919A (zh) * | 2021-12-30 | 2022-04-08 | 百融云创科技股份有限公司 | 一种基于Kubernetes的ICE框架改进方法 |
CN114640610A (zh) * | 2022-02-25 | 2022-06-17 | 北京健康之家科技有限公司 | 基于云原生的服务治理方法、装置及存储介质 |
CN114760292A (zh) * | 2020-12-25 | 2022-07-15 | 广东飞企互联科技股份有限公司 | 一种面向服务发现与注册的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170054598A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Self-service server change management |
CN110457134A (zh) * | 2019-08-08 | 2019-11-15 | 杭州阿启视科技有限公司 | 建立基于容器云和微服务架构的视频大数据云平台的方法 |
-
2019
- 2019-12-23 CN CN201911334168.5A patent/CN111010304A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170054598A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Self-service server change management |
CN110457134A (zh) * | 2019-08-08 | 2019-11-15 | 杭州阿启视科技有限公司 | 建立基于容器云和微服务架构的视频大数据云平台的方法 |
Non-Patent Citations (1)
Title |
---|
阿里云云栖号: "服务化改造实践(二)|Dubbo+kubernetes", 《HTTP://GITLAB.ALIBABA-INC.COM/KONGMING.LRQ/DUBBO-KUBERNETES/TREE/MASTER》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541765A (zh) * | 2020-04-21 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种用于多级路由调度的方法及系统 |
CN111541765B (zh) * | 2020-04-21 | 2022-04-19 | 北京思特奇信息技术股份有限公司 | 一种用于多级路由调度的方法及系统 |
CN111782766A (zh) * | 2020-06-30 | 2020-10-16 | 福建健康之路信息技术有限公司 | 一种通过关键字检索Kubernetes集群中所有资源的方法和系统 |
CN111866122A (zh) * | 2020-07-18 | 2020-10-30 | 昆明理工大学 | 一种微服务处理方法、装置、客户终端 |
CN114760292A (zh) * | 2020-12-25 | 2022-07-15 | 广东飞企互联科技股份有限公司 | 一种面向服务发现与注册的方法及装置 |
CN114760292B (zh) * | 2020-12-25 | 2023-07-21 | 广东飞企互联科技股份有限公司 | 一种面向服务发现与注册的方法及装置 |
CN112764825A (zh) * | 2020-12-30 | 2021-05-07 | 望海康信(北京)科技股份公司 | 服务集成系统及相应设备和存储介质 |
CN112764825B (zh) * | 2020-12-30 | 2023-12-29 | 望海康信(北京)科技股份公司 | 服务集成系统及相应设备和存储介质 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN114301919A (zh) * | 2021-12-30 | 2022-04-08 | 百融云创科技股份有限公司 | 一种基于Kubernetes的ICE框架改进方法 |
CN114301919B (zh) * | 2021-12-30 | 2024-04-05 | 百融云创科技股份有限公司 | 一种基于Kubernetes的ICE框架改进方法 |
CN114640610A (zh) * | 2022-02-25 | 2022-06-17 | 北京健康之家科技有限公司 | 基于云原生的服务治理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010304A (zh) | 一种Dubbo服务与Kubernetes系统集成的方法 | |
US10848431B2 (en) | Virtual network interface objects | |
US10862760B2 (en) | Network functions virtualization | |
EP3170071B1 (en) | Self-extending cloud | |
CA2914802C (en) | Distributed lock management in a cloud computing environment | |
CN110990047B (zh) | 用于多个微服务架构的融合方法及装置 | |
La et al. | A conceptual framework for provisioning context-aware mobile cloud services | |
CN113596110B (zh) | 一种面向异构云的云原生微服务平台 | |
US7792944B2 (en) | Executing programs based on user-specified constraints | |
US9397909B2 (en) | Methods and apparatus for scalable private services | |
CN110262902B (zh) | 信息处理方法及系统、介质和计算设备 | |
CN111857873A (zh) | 一种实现云原生容器网络的方法 | |
CN111209127A (zh) | 一种Dubbo框架集成Istio服务网格的方法 | |
US11159646B1 (en) | Identifying, presenting, and launching preferred applications on virtual desktop instances | |
US20060129885A1 (en) | Propagating debug information in a web services environment | |
CN115086330A (zh) | 跨集群负载均衡系统 | |
CN112685020A (zh) | 动态创建服务接口的方法、装置、电子设备及存储介质 | |
CN116800825A (zh) | 一种基于微服务拆分的调用方法、装置、设备及介质 | |
CN116113923A (zh) | 容器集群管理方法及其系统 | |
US8200749B2 (en) | Data processing method for generating service interface descriptions | |
CN115086166A (zh) | 计算系统、容器网络配置方法及存储介质 | |
CN114826869A (zh) | 设备管理方法和设备管理系统 | |
CN114489761B (zh) | 一种基于容器集群的服务集成和应用集成方法 | |
CN114461424A (zh) | 单元化部署架构下的单元间服务发现方法、装置及系统 | |
US20050076343A1 (en) | Persistent storage of network management data using object references |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200414 |