CN110505219B - 基于dubbo的微服务服务注册控制管理系统及方法 - Google Patents
基于dubbo的微服务服务注册控制管理系统及方法 Download PDFInfo
- Publication number
- CN110505219B CN110505219B CN201910738054.0A CN201910738054A CN110505219B CN 110505219 B CN110505219 B CN 110505219B CN 201910738054 A CN201910738054 A CN 201910738054A CN 110505219 B CN110505219 B CN 110505219B
- Authority
- CN
- China
- Prior art keywords
- service
- dubbo
- registration
- information
- package
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于dubbo的微服务服务注册控制管理系统及方法,系统包括:合法性校验模块,用于校验服务的合法性;版本校验模块,用于校验服务提供者引用的dubbo包是否为定制版本;异常信息接收模块,用于接收服务发布失败的异常信息。本发明所提供的服务注册审核验证管理,提高了服务注册的安全性,实现了对不合格服务的有效过滤,节省了原始服务注册成功后再对服务进行控制的时间,加快了服务注册调用的效率。
Description
技术领域
本发明属于注册服务的验证技术领域,具体指代一种基于dubbo的微服务服务注册控制管理系统及方法。
背景技术
服务注册中心是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用,实现了各个微服务实例的自动化注册与发现,解耦了服务提供者和服务消费者。因为每个公司的架构、规模、部署环境等等都不尽相同,所以注册中心对微服务架构来说是非常重要的。
现有的注册中心对dubbo服务的验证主要是通过以下几个方面:
在dubbo服务的配置文件或者dubbo-admin管理页面设置ip黑白名单来控制哪些服务能访问该提供者,哪些服务不能访问该提供者;
服务注册成功后在dubbo-admin管理页面对服务进行禁用/启用;
降低服务的权重和优先级来降低对该服务的使用几率;
但上述的这些控制方式只能在服务注册成功后才能生效,不能在服务注册的过程中对服务进行有效的验证以拒绝服务的注册;这就导致所有的dubbo服务都能注册到注册中心,并不能对服务类型进行有效的过滤。
针对目前存在的注册中心不能对服务类型在注册过程时进行有效的过滤的问题,本发明提供了一种在注册时对dubbo服务的验证,通过本发明能实现对服务提供者有效的管理,实现对微服务发布注册到治理中心的有效管理,保证只有合法登记的服务类型可在治理中心注册发布,发布失败的服务将会接收到注册中心返回的注册异常信息并同时停止注册。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于dubbo的微服务服务注册控制管理系统及方法,以解决现有技术中目前存在的注册中心不能对服务类型在注册过程时进行有效的过滤的问题。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种基于dubbo的微服务服务注册控制管理系统,包括:
合法性校验模块,用于校验服务的合法性;
版本校验模块,用于校验服务提供者引用的dubbo包是否为定制版本;
异常信息接收模块,用于接收服务发布失败的异常信息。
进一步地,所述合法性校验模块具体包括:
服务发布者成功发布服务后,发放一个ZSID形成标记;
服务注册时,判断服务注册时的请求事务头TxnHeader的类型是否是创建节点,若是,则解析请求事务体createTxn获得当前服务的基本信息和配置信息;并判断配置信息中是否包含当前服务的ZSID,若包含,则判断当前ZSID是否有效,若有效则进行dubbo包是否为定制版本的校验,否则,注册失败,dubbo服务停止注册;
在zookeeper中加入与数据库的连接操作,注册失败后,将异常信息记录到日志和数据库中,以便管理员查看。
进一步地,所述版本校验模块具体包括:
将dubbo的原始包名org.apache.dubbo.dubbo改为org.apache.dubbo.rf-dubbo;
将服务所引用的dubbo包的包名由原始的dubbo重新设定为rf-dubbo;
服务注册时,校验服务配置信息中的dubbo包名是否为rf-dubbo,若是,则校验通过,注册成功;否则,注册失败,dubbo服务停止注册。
进一步地,所述异常信息接收模块具体包括:
dubbo服务注册到注册中心时若校验异常导致注册失败,注册中心会通知当前服务注册者注册失败导致的异常信息,服务注册者接收异常信息并停止注册;
异常信息通知将使用消息队列方法进行消息传递,在合法性校验和dubbo包版本校验的校验异常逻辑处加入消息队列信息生产者,在rf-dubbo包里加入消息队列的信息消费者,实现对异常信息的存储和获取,采用发布/订阅的消息模型,使得消息在产生的同时就能被消费者监听并消费掉,消费产生后,若无消费者消费也不会保存。
进一步地,所述消息队列方法为分布式应用间交换信息的一种技术,通过消息队列,应用程序可独立的运行,不需要知道彼此的位置、或在执行前不需要等待接收程序接收此消息。
本发明的一种基于dubbo的微服务服务注册控制管理方法,包括步骤如下:
1)校验服务的合法性;
2)校验服务提供者引用的dubbo包是否为定制版本;
3)接收服务发布失败的异常信息。
进一步地,所述步骤1)具体包括:
11)服务发布者成功发布服务后,发放一个ZSID形成标记;
12)服务注册时,判断服务注册时的请求事务头TxnHeader的类型是否是创建节点,若是,则解析请求事务体createTxn获得当前服务的基本信息和配置信息;并判断配置信息中是否包含当前服务的ZSID,若包含,则判断当前ZSID是否有效,若有效则进入步骤2),否则,注册失败,dubbo服务停止注册;
13)在zookeeper中加入与数据库的连接操作,注册失败后,将异常信息记录到日志和数据库中,以便管理员查看。
进一步地,所述ZSID是一个32位的字符串,为随机分配,唯一代表该服务;服务每次注册均携带ZSID。
进一步地,所述步骤2)具体包括:
21)将dubbo的原始包名org.apache.dubbo.dubbo改为org.apache.dubbo.rf-dubbo;
22)将服务所引用的dubbo包的包名由原始的dubbo重新设定为rf-dubbo;
23)服务注册时,校验服务配置信息中的dubbo包名是否为rf-dubbo,若是,则校验通过,注册成功;否则,注册失败,dubbo服务停止注册。
进一步地,所述步骤3)具体包括:
31)dubbo服务注册到注册中心时若校验异常导致注册失败,注册中心会通知当前服务注册者注册失败导致的异常信息,服务注册者接收异常信息并停止注册;
32)异常信息通知将使用消息队列方法行消息传递,在所述步骤1)和步骤2)的校验异常逻辑处加入消息队列信息生产者,在rf-dubbo包里加入消息队列的信息消费者,实现对异常信息的存储和获取,采用发布/订阅的消息模型,使得消息在产生的同时就能被消费者监听并消费掉,消费产生后,若无消费者消费也不会保存。
一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现的方法如下:
1)校验服务的合法性;
2)校验服务提供者引用的dubbo包是否为定制版本;
3)接收服务发布失败的异常信息。
本发明的有益效果:
本发明所提供的服务注册审核验证管理,提高了服务注册的安全性,实现了对不合格服务的有效过滤,节省了原始服务注册成功后再对服务进行控制的时间,加快了服务注册调用的效率。
附图说明
图1绘示本发明方法的原理图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
本发明的一种基于dubbo的微服务服务注册控制管理系统,包括:
合法性校验模块,用于校验服务的合法性;
版本校验模块,用于校验服务提供者引用的dubbo包是否为定制版本;
异常信息接收模块,用于接收服务发布失败的异常信息。
其中,所述合法性校验模块具体包括:
服务发布者成功发布服务后,发放一个ZSID形成标记;
服务注册时,判断服务注册时的请求事务头TxnHeader的类型是否是创建节点,若是,则解析请求事务体createTxn获得当前服务的基本信息和配置信息;并判断配置信息中是否包含当前服务的ZSID,若包含,则判断当前ZSID是否有效,若有效则进行dubbo包是否为定制版本的校验,否则,注册失败,dubbo服务停止注册;
在zookeeper中加入与数据库的连接操作,注册失败后,将异常信息记录到日志和数据库中,以便管理员查看。
其中,所述版本校验模块具体包括:
将dubbo的原始包名org.apache.dubbo.dubbo改为org.apache.dubbo.rf-dubbo;
将服务所引用的dubbo包的包名由原始的dubbo重新设定为rf-dubbo;
服务注册时,校验服务配置信息中的dubbo包名是否为rf-dubbo,若是,则校验通过,注册成功;否则,注册失败,dubbo服务停止注册。
其中,所述异常信息接收模块具体包括:
dubbo服务注册到注册中心时若校验异常导致注册失败,注册中心会通知当前服务注册者注册失败导致的异常信息,服务注册者接收异常信息并停止注册;
异常信息通知将使用消息队列方法进行消息传递,在合法性校验和dubbo包版本校验的校验异常逻辑处加入消息队列信息生产者,在rf-dubbo包里加入消息队列的信息消费者,实现对异常信息的存储和获取,采用发布/订阅的消息模型,使得消息在产生的同时就能被消费者监听并消费掉,消费产生后,若无消费者消费也不会保存。
进一步地,所述消息队列方法为分布式应用间交换信息的一种技术,通过消息队列,应用程序可独立的运行,不需要知道彼此的位置、或在执行前不需要等待接收程序接收此消息。
图1展示了服务发布者注册、服务注册、服务信息校验的过程,服务的审核注册在服务注册过程中,在这个过程中会验证服务注册成功管理器返回的密钥和服务所引用的dubbo的 jar包。
注册中心部署:
目前的dubbo服务的注册中心为zookeeper,在zookeeper源码按核心方案所示加入对服务基本信息和配置信息的校验逻辑后,双击启动zookeeper-3.4.13\bin\zkServer.cmd。
启动消息队列服务:
在zookeeper中设置消息发送端,注册异常时,消息队列信息生产者连接ConnectionFactory并发送信息到目的地;
在rf-dubbo的jar包源码里设置消息接收端,接收 端设置消息监听器实时监听,当有异常信息时,读取并显示在当前注册服务的控制台以通知当前的服务注册用户服务因某异常信息导致服务停止注册。
项目引入dubbo的jar包并配置dubbo信息:
在项目的pom.xml文件中加入rf-dubbo的dependency,引用加入了验证逻辑后的dubbo 包;
在dubbo项目新建application.xml用于配置对外服务的信息将接口进行暴露并连接注册中心,其中需要在配置文件中加入<dubbo:provider token="xxxxxxxxxx"/>,token值为服务在注册申请成功后返回的ZSID值;
服务启动,注册中心内部代码逻辑检验是否携带了token值,jar包包名是否为rf-dubbo,根据检验结果做出相应的处理;注册失败dubbo项目停止注册。
服务注册成功后在注册中心展示:
服务注册成功后,注册中心的提供者模块页面会展示当前的服务提供者信息,展示信息主要包括:服务名,服务地址,服务类型,服务发布者,服务密级,服务发布时间,服务暴露的接口详细信息(接口名,接口条件参数信息,接口返回参数信息),还支持对服务的启用/ 禁用和修改功能;
当有其他服务来消费当前注册到注册中心的服务时,管理器页面也会展示当前消费的服务信息。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (5)
1.一种基于dubbo的微服务服务注册控制管理系统,其特征在于,包括:
合法性校验模块,用于校验服务的合法性;
版本校验模块,用于校验服务提供者引用的dubbo包是否为定制版本;
异常信息接收模块,用于接收服务发布失败的异常信息;
所述版本校验模块具体包括:
将dubbo的原始包名org.apache.dubbo.dubbo改为org.apache.dubbo.rf-dubbo;
将服务所引用的dubbo包的包名由原始的dubbo重新设定为rf-dubbo;
服务注册时,校验服务配置信息中的dubbo包名是否为rf-dubbo,若是,则校验通过,注册成功;否则,注册失败,dubbo服务停止注册;
所述异常信息接收模块具体包括:
dubbo服务注册到注册中心时若校验异常导致注册失败,注册中心会通知当前服务注册者注册失败导致的异常信息,服务注册者接收异常信息并停止注册;
异常信息通知将使用消息队列方法进行消息传递,在合法性校验和dubbo包版本校验的校验异常逻辑处加入消息队列信息生产者,在rf-dubbo包里加入消息队列的信息消费者,实现对异常信息的存储和获取,采用发布/订阅的消息模型,使得消息在产生的同时就能被消费者监听并消费掉,消费产生后,若无消费者消费也不会保存。
2.根据权利要求1所述的基于dubbo的微服务服务注册控制管理系统,其特征在于,所述合法性校验模块具体包括:
服务发布者成功发布服务后,发放一个ZSID形成标记;
服务注册时,判断服务注册时的请求事务头TxnHeader的类型是否是创建节点,若是,则解析请求事务体createTxn获得当前服务的基本信息和配置信息;并判断配置信息中是否包含当前服务的ZSID,若包含,则判断当前ZSID是否有效,若有效则进行dubbo包是否为定制版本的校验,否则,注册失败,dubbo服务停止注册;
在zookeeper中加入与数据库的连接操作,注册失败后,将异常信息记录到日志和数据库中,以便管理员查看。
3.一种基于dubbo的微服务服务注册控制管理方法,其特征在于,包括步骤如下:
1)校验服务的合法性;
2)校验服务提供者引用的dubbo包是否为定制版本;
3)接收服务发布失败的异常信息;
所述步骤2)具体包括:
21)将dubbo的原始包名org.apache.dubbo.dubbo改为org.apache.dubbo.rf-dubbo;
22)将服务所引用的dubbo包的包名由原始的dubbo重新设定为rf-dubbo;
23)服务注册时,校验服务配置信息中的dubbo包名是否为rf-dubbo,若是,则校验通过,注册成功;否则,注册失败,dubbo服务停止注册;
所述步骤3)具体包括:
31)dubbo服务注册到注册中心时若校验异常导致注册失败,注册中心会通知当前服务注册者注册失败导致的异常信息,服务注册者接收异常信息并停止注册;
32)异常信息通知将使用消息队列方法进 行消息传递,在所述步骤1)和步骤2)的校验异常逻辑处加入消息队列信息生产者,在rf-dubbo包里加入消息队列的信息消费者,实现对异常信息的存储和获取,采用发布/订阅的消息模型,使得消息在产生的同时就能被消费者监听并消费掉,消费产生后,若无消费者消费也不会保存。
4.根据权利要求3所述的基于dubbo的微服务服务注册控制管理方法,其特征在于,所述步骤1)具体包括:
11)服务发布者成功发布服务后,发放一个ZSID形成标记;
12)服务注册时,判断服务注册时的请求事务头TxnHeader的类型是否是创建节点,若是,则解析请求事务体createTxn获得当前服务的基本信息和配置信息;并判断配置信息中是否包含当前服务的ZSID,若包含,则判断当前ZSID是否有效,若有效则进入步骤2),否则,注册失败,dubbo服务停止注册;
13)在zookeeper中加入与数据库的连接操作,注册失败后,将异常信息记录到日志和数据库中,以便管理员查看。
5.根据权利要求4所述的基于dubbo的微服务服务注册控制管理方法,其特征在于,所述ZSID是一个32位的字符串,为随机分配,唯一代表该服务;服务每次注册均携带ZSID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910738054.0A CN110505219B (zh) | 2019-08-12 | 2019-08-12 | 基于dubbo的微服务服务注册控制管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910738054.0A CN110505219B (zh) | 2019-08-12 | 2019-08-12 | 基于dubbo的微服务服务注册控制管理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110505219A CN110505219A (zh) | 2019-11-26 |
CN110505219B true CN110505219B (zh) | 2021-10-26 |
Family
ID=68587146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910738054.0A Active CN110505219B (zh) | 2019-08-12 | 2019-08-12 | 基于dubbo的微服务服务注册控制管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110505219B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984484A (zh) * | 2020-09-02 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 无侵入式微服务接入方法及系统 |
CN112416459B (zh) * | 2020-11-23 | 2024-03-01 | 杭州当虹科技股份有限公司 | 一种解决微服务之间版本强依赖的系统 |
CN113067725B (zh) * | 2021-03-12 | 2023-02-17 | 恩亿科(北京)数据科技有限公司 | 服务配置动态更新方法、系统、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515759A (zh) * | 2015-11-27 | 2016-04-20 | 国网信息通信产业集团有限公司 | 一种微服务注册方法及系统 |
CN105872051A (zh) * | 2016-03-31 | 2016-08-17 | 浪潮通信信息系统有限公司 | 一种政企云平台中的能力开放管控服务平台 |
CN109587169A (zh) * | 2018-12-29 | 2019-04-05 | 亿阳安全技术有限公司 | 一种服务准入的管理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819607B (zh) * | 2017-10-13 | 2020-09-01 | 丹露成都网络技术有限公司 | 基于dubbo的微服务监控系统 |
CN109495559B (zh) * | 2018-11-06 | 2022-02-22 | 用友网络科技股份有限公司 | 微服务客户端的服务注册及调用方法、注册及调用系统 |
-
2019
- 2019-08-12 CN CN201910738054.0A patent/CN110505219B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515759A (zh) * | 2015-11-27 | 2016-04-20 | 国网信息通信产业集团有限公司 | 一种微服务注册方法及系统 |
CN105872051A (zh) * | 2016-03-31 | 2016-08-17 | 浪潮通信信息系统有限公司 | 一种政企云平台中的能力开放管控服务平台 |
CN109587169A (zh) * | 2018-12-29 | 2019-04-05 | 亿阳安全技术有限公司 | 一种服务准入的管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
"Dubbo(一)——Dubbo及注册中心原理";不要熬夜每一根头发都很珍贵;《https://blog.csdn.net/baoyu_G/article/details/82314435》;20180902;第1-2页 * |
"Dubbo_创建Dubbo服务并在ZooKeeper注册,然后通过Jar包执行";扯;《https://www.cnblogs.com/gossip/p/5945848.html》;20161010;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110505219A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110505219B (zh) | 基于dubbo的微服务服务注册控制管理系统及方法 | |
CN110706069B (zh) | 订单支付请求的异常处理方法、设备、服务器及系统 | |
US10924281B2 (en) | Method and apparatus for inter-blockchain transmission of authenticable message | |
EP1977324B1 (en) | Terminal and method for performing device management scheduled based on threshold | |
US9696977B2 (en) | Method and system for allocating ID of software component | |
JP2002108728A (ja) | 障害情報の掲載方法およびプロバイダ設備 | |
US20070078943A1 (en) | Message based application communication system | |
CN109413040B (zh) | 消息鉴权方法、设备、系统及计算机可读存储介质 | |
CN110389765B (zh) | 一种参数校验方法和参数校验系统 | |
CN110706071A (zh) | 订单支付请求的异常处理方法、设备、服务器及系统 | |
US8104037B2 (en) | Terminal and method for performing device management scheduled based on threshold | |
CN111355622A (zh) | 容器的业务监控方法、系统和计算机可读存储介质 | |
EP1881675B1 (en) | System and method for managing a plurality of web services | |
CN103491175A (zh) | 用于应用程序管理的方法和终端 | |
CN114124649B (zh) | 基于mqtt和报文约定的网关通信方法、系统及网关设备 | |
JP2012503455A (ja) | ネットワークにおけるアクセス制御方法およびネットワーク | |
US8117257B2 (en) | Device management using event | |
CN110740062B (zh) | 断点续传方法和装置 | |
CN107506220B (zh) | 一种基于软件产品的安装包解压方法和装置 | |
CN111552581A (zh) | 事件传递方法、装置、系统和电子设备 | |
CN114553871B (zh) | 向车载应用推送消息的方法、装置、设备及存储介质 | |
CN111475272A (zh) | 控制Java Web应用定时任务的方法、装置及任务调度平台 | |
CN114090112B (zh) | 配置文件的加载方法和装置、存储介质及电子装置 | |
CN116109112B (zh) | 基于聚合接口的业务数据处理方法、装置、介质和设备 | |
CN110430118B (zh) | 账单邮件管理方法、装置、计算机设备及计算机可读存储介质 |
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 |