基于ETCD实现配置监听的方法和系统与流程

文档序号:32164227发布日期:2022-11-12 03:45阅读:214来源:国知局
基于ETCD实现配置监听的方法和系统与流程
基于etcd实现配置监听的方法和系统
技术领域
1.本发明涉及配置监听技术领域,尤其是涉及一种基于etcd实现配置监听的方法和系统。


背景技术:

2.现有的配置监听方案比较多,通过zookeeper或者etcd都提供原生的配置监控,例如:zookeeper的watch机制或者etcd的租约watch机制都可以实现配置的监听。然而,现有技术中利用原生的配置监听方法,都需要使用原生的客户端,每种语言都有自己的客户端方法,无法做到跨语言通用。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种基于etcd实现配置监听的方法和系统,以缓解现有技术中存在的配置监听方法无法跨语言通用的技术问题。
4.第一方面,本发明实施例提供了一种基于etcd实现配置监听的方法,应用于web服务端;包括:建立与目标客户端的长连接,将所述目标客户端的初始配置信息存储在所述web服务端的etcd;在接收到目标客户端的配置监听请求后,建立长轮询策略;基于所述初始配置信息和所述长轮询策略,对所述目标客户端进行配置监听。
5.进一步地,基于所述etcd中的初始配置信息和所述长轮询策略,对所述目标客户端进行配置监听,包括:基于所述长轮询策略,监听所述目标客户端的配置请求;所述配置请求包括所述目标客户端的当前配置信息;响应于所述目标客户端的配置请求,判断所述当前配置信息与所述初始配置信息是否相同;如果不同,则将所述初始配置信息返回给所述目标客户端。
6.进一步地,判断所述当前配置信息与所述初始配置信息是否相同,包括:判断所述当前配置信息的md5值与所述初始配置信息的md5值是否相同。
7.进一步地,还包括:响应于所述目标客户端的配置请求,若判断所述当前配置信息与所述初始配置信息相同,则将所述配置请求保持预设时间段;判断所述预设时间段内所述初始配置信息是否发生变化;如果是,则将变化后的配置信息返回到所述目标客户端。
8.第二方面,本发明实施例还提供了一种基于etcd实现配置监听的系统,应用于web服务端;包括:第一建立模块,第二建立模块和监听模块;其中,所述第一建立模块,用于建立与所述目标客户端的长连接,将所述目标客户端的初始配置信息存储在所述web服务端的etcd;所述第二建立模块,用于在接收到目标客户端的配置监听请求后,建立长轮询策略;所述监听模块,用于基于所述初始配置信息和所述长轮询策略,对所述目标客户端进行配置监听。
9.进一步地,所述监听模块,包括:监听单元和判断单元;其中,所述监听单元,用于基于所述长轮询策略,监听所述目标客户端的配置请求;所述配置请求包括所述目标客户端的当前配置信息;所述判断单元,用于响应于所述目标客户端的配置请求,判断所述当前
配置信息与所述初始配置信息是否相同;如果不同,则将所述初始配置信息返回给所述目标客户端。
10.进一步地,所述判断单元,还用于:判断所述当前配置信息的md5值与所述初始配置信息的md5值是否相同。
11.进一步地,所述判断单元,还用于:响应于所述目标客户端的配置请求,若判断所述当前配置信息与所述初始配置信息相同,则将所述配置请求保持预设时间段;判断所述预设时间段内所述初始配置信息是否发生变化;如果是,则将变化后的配置信息返回到所述目标客户端。
12.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。
13.第四方面,本发明实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面所述方法。
14.本发明提供了一种基于etcd实现配置监听的方法和系统,包括:建立与目标客户端的长连接,将目标客户端的初始配置信息存储在web服务端的etcd;在接收到目标客户端的配置监听请求后,建立长轮询策略;基于初始配置信息和长轮询策略,对目标客户端进行配置监听。本发明提供方法可以通过http的方式实现跨语言通用,并且对客户端的改造较小,更便捷,缓解了现有技术中存在的配置监听方法无法跨语言通用的技术问题。
附图说明
15.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例提供的一种基于etcd实现配置监听的方法的流程图;
17.图2为本发明实施例提供的一种配置变化时的请求返回示意图;
18.图3为本发明实施例提供的一种配置未发生变化时的请求返回示意图;
19.图4为本发明实施例提供的一种基于etcd实现配置监听的系统的示意图;
20.图5为本发明实施例提供的一种监听模块的示意图。
具体实施方式
21.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.实施例一:
23.图1是根据本发明实施例提供的一种基于etcd实现配置监听的方法的流程图,该方法应用于web服务端。如图1所示,该方法具体包括如下步骤:
24.步骤s102,建立与目标客户端的长连接,将目标客户端的初始配置信息存储在web服务端的etcd。
25.分布式注册服务中心etcd是用于共享配置和服务发现的分布式、一致性的key-value存储系统,提供了数据ttl失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能。
26.步骤s104,在接收到目标客户端的配置监听请求后,建立长轮询策略。
27.步骤s106,基于初始配置信息和长轮询策略,对目标客户端进行配置监听。
28.具体地,基于长轮询策略,监听目标客户端的配置请求;配置请求包括目标客户端的当前配置信息;
29.响应于目标客户端的配置请求,判断当前配置信息与初始配置信息是否相同;如果不同,则将初始配置信息返回给目标客户端。
30.具体地,判断当前配置信息的md5值与初始配置信息的md5值是否相同。
31.响应于目标客户端的配置请求,若判断当前配置信息与初始配置信息相同,则将配置请求保持预设时间段;
32.判断预设时间段内初始配置信息是否发生变化;如果是,则将变化后的配置信息返回到目标客户端。
33.本发明提供了一种基于etcd实现配置监听的方法,可以通过http的方式实现跨语言通用,并且对客户端的改造较小,更便捷,缓解了现有技术中存在的配置监听方法无法跨语言通用的技术问题。
34.在本发明实施例中,使用gin框架编写web服务,etcd作为数据库存储数据,web服务对外提供配置监听服务,客户端与web服务端建立长连接,服务端保持http的长轮询,实现配置发生变化后,能及时通知各个客户端的需求。
35.具体地,web服务端接收到客户端的请求后,会在web服务端建立长轮询策略。为了保证数据监听的准确性,客户端请求建立之后会将客户端传输过来的配置参数与etcd中的配置先进行md5值比对,如果md5值不同则直接将etcd中的配置值返回给客户端;如果md5值相同,那么会将请求保持预设时间段(比如保持30s),如果在这个时间到期前,配置的值发生了变化,那么修改后的配置值会作为请求的返回值返回给客户端,如图2所示,其中,图2为根据本发明实施例提供的一种配置变化时的请求返回示意图。客户端接收到返回值后再次建立新的请求并同步修改本地配置项;如果到期没有发生变化。请求返回无变化状态,客户端接收到返回值之后再次建立新请求,如图3所示,其中,图3为根据本发明实施例提供的一种配置未发生变化时的请求返回示意图。
36.实施例二:
37.图4为根据本发明实施例提供的一种基于etcd实现配置监听的系统的示意图,该系统应用于web服务端。如图4所示,该系统包括:第一建立模块10,第二建立模块20和监听模块30。
38.具体地,第一建立模块10,用于建立与目标客户端的长连接,将目标客户端的初始配置信息存储在web服务端的etcd。
39.第二建立模块20,用于在接收到目标客户端的配置监听请求后,建立长轮询策略。
40.监听模块30,用于基于初始配置信息和长轮询策略,对目标客户端进行配置监听。
41.本发明提供了一种基于etcd实现配置监听的系统,可以通过http的方式实现跨语言通用,并且对客户端的改造较小,更便捷,缓解了现有技术中存在的配置监听方法无法跨
语言通用的技术问题。
42.可选地,图5为根据本发明实施例提供的一种监听模块的示意图。如图5所示,监听模块30,包括:监听单元31和判断单元32。
43.具体地,监听单元31,用于基于长轮询策略,监听目标客户端的配置请求;配置请求包括目标客户端的当前配置信息。
44.判断单元32,用于响应于目标客户端的配置请求,判断当前配置信息与初始配置信息是否相同;如果不同,则将初始配置信息返回给目标客户端。
45.可选地,判断单元32,还用于:判断当前配置信息的md5值与初始配置信息的md5值是否相同。
46.可选地,判断单元32,还用于:响应于目标客户端的配置请求,若判断当前配置信息与初始配置信息相同,则将配置请求保持预设时间段;判断预设时间段内初始配置信息是否发生变化;如果是,则将变化后的配置信息返回到目标客户端。
47.本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例一中的方法的步骤。
48.本发明实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述实施例一中的方法。
49.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1