CN111930758A - 一种基于Paxos算法的微服务配置数据实时更新方法 - Google Patents
一种基于Paxos算法的微服务配置数据实时更新方法 Download PDFInfo
- Publication number
- CN111930758A CN111930758A CN202010671783.1A CN202010671783A CN111930758A CN 111930758 A CN111930758 A CN 111930758A CN 202010671783 A CN202010671783 A CN 202010671783A CN 111930758 A CN111930758 A CN 111930758A
- Authority
- CN
- China
- Prior art keywords
- configuration
- data
- configuration center
- client
- event notification
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000008859 change Effects 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000007246 mechanism Effects 0.000 claims abstract description 9
- 239000000370 acceptor Substances 0.000 claims description 22
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims description 3
- 244000046052 Phaseolus vulgaris Species 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及微服务架构技术领域,尤其是一种基于Paxos算法的微服务配置数据实时更新方法,包括下述步骤,S1、构建分布式的配置中心服务端并采用Paxos协议部署zookeeper服务集群作为所述配置中心服务端的数据库;S2、所述配置中心客户端通过Watcher机制接收配置中心服务端中zookeeper服务集群的数据变更事件通知;S3、所述配置中心客户端根据事件通知执行process并处理变更事件中微服务应用的实例数据变更操作。本发明的一种基于Paxos算法的微服务配置数据实时更新方法,能够使微服务实现大规模集群配置数据一致,统一管理和配置数据在线实时更新。
Description
技术领域
本发明涉及微服务架构技术领域,尤其是一种基于Paxos算法的微服务配置数据实时更新方法。
背景技术
在微服务架构体系中,配置中心是比较重要的组件之一。配置中心用于统一管理应用集群中的配置数据,以实现集群内部各个主机配置一致的目的。避免配置不一致导致的集群服务异常。Spring Cloud官方提供了一个Spring Cloud Config分布式配置中心,可以提供集中化的外部配置支持。它分为客户端和服务端两部分,其中服务端作为配置中心,是一个独立的微服务应用,用来连接Git仓库并为客户端提供获取配置的接口,其版本控制是基于Git仓库本身来支持的。配置数据的变更主要采用基于消息总线的架构方式,这种架构需要依赖外部的MQ组件,如RabbitMQ、Kafka实现远程环境事件变更通知,配置中心数据实时变更可以通过git hook功能实现。当依赖的消息组件出现问题时,如果此时git仓库配置发生了变更,会导致部分或所有客户端无法获取到最新的配置,这样就造成了客户端应用配置数据无法达成最终一致性,进而引发线上问题。
而且在目前的技术设计中,配置中心的数据支持分布式部署,可实现2F+1个节点的系统中最多允许F个节点同时出现故障,通过消息事件通知实现数据变更的及时更新。
发明内容
为了解决上述问题,本发明提供一种基于Paxos算法的微服务配置数据实时更新方法,能够使微服务实现大规模集群配置数据一致,统一管理和配置数据在线实时更新。
为了实现上述目的,本发明采用的技术方案为:
一种基于Paxos算法的微服务配置数据实时更新方法,包括下述步骤,
S1、构建分布式的配置中心服务端,并采用Paxos协议部署zookeeper服务集群作为所述配置中心服务端的数据库;所述配置中心服务端提供配置数据中心的配置数据修改页面,在所述配置数据中心的数据发生变更后,所述配置中心服务端通过Multi-Paxos算法使所述zookeeper服务集群的数据保持一致性;
S2、微服务应用集群的配置中心客户端与所述配置中心服务端建立连接,且所述配置中心客户端通过Watcher机制接收配置中心服务端中zookeeper服务集群的数据变更事件通知;
S3、所述配置中心客户端根据事件通知执行process监并处理变更事件中微服务应用的实例数据变更操作,以使所述配置中心客户端更新微服务应用中的配置数据,或者销毁微服务应用的实例后重新生成,且变更后的配置数据转换为json格式存储,配置数据的读取也使用json格式。
进一步地,所述zookeeper服务集群的数据保持一致性的步骤为:
A1、针对每一个要确定的值,运行一次Paxos算法实例,形成决议,并对每一个Paxos实例使用唯一的Instance ID标识;
A2、在所有Proposers中选举一个Leader,由Leader唯一地提交Proposal给Acceptors进行表决。
进一步地,所述Paxos算法包括下述步骤:
a1、Prepare阶段:Proposer向Acceptors发出Prepare请求,Acceptors针对收到的Prepare请求进行Promise承诺;
a2、Accept阶段:Proposer收到多数Acceptors承诺的Promise后,向Acceptors发出Propose请求,Acceptors针对收到的Propose请求进行Accept处理;
a3、第三阶段:Learn阶段。Proposer在收到多数Acceptors的Accept之后,标志着本次Accept成功,决议形成,将形成的决议发送给所有Learners。
进一步地,在步骤S2中,所述配置中心客户端获得事件通知的步骤为:
B1、微服务应用集群启动,每个微服务应用的实例创建一个配置中心客户端;
B2、所述配置中心客户端初始化并注册watcher;
B3、所述配置中心客户端基于TCP/IP协议与所述配置中心服务端建立长连接;
B4、所述配置中心服务端的数据发生变更的时触发watcherEvent;
B5、所述配置中心客户端所订阅的数据属于所述配置数据中心的变更数据时,所述配置数据中心获得事件通知。
进一步地,所述事件通知包括事件类型,数据节点路径及数据节点状态。
进一步地,在步骤S3中,在步骤S3中,process的操作步骤为:
C1、所述配置中心客户端通过检查事件通知的类型,判断事件通知是否属于数据的变更,当事件通知为数据的变更,所述配置中心客户端根据事件通知中的数据节点路径向所述配置中心服务端查询最新的数据;当事件通知不为数据的变更,忽略此次事件通知;
C2、所述配置中心客户端根据发生变更的数据节点路径,判断该数据所被使的配置类,并从本地应用实例的容器中获取配置对象,逐个进行数据变更的操作,直至该数据节点对应的所有配置类都更新完成。
进一步地,所述配置中心客户端与所述配置中心服务端为同步连接时,先获取闩。
进一步地,在步骤C2中,当一个数据节点存在多个watcher时,每一所述watcher都执行配置数据变更操作。
进一步地,在步骤C2中,涉及到连接池配置时,先销毁再创建配置类实例,以进行数据变更的操作。
进一步地,在步骤S3中,当微服务应用使用所述配置中心客户端从所述配置中心服务端读取配置对象的数据,所述配置中心服务端异常时,所述配置中心客户端执行下述步骤,以进行本地数据的缓存,
D1、将当前配置对象中Bean包含的配置数据转换为json格式;
D2、在本地配置文件目录生成config.local.cache.json文件存储当前生效的配置数据;
D3、启动微服务应用时,当所述配置中心客户端与所述配置中心服务端连接失败时,优先读取本地默认配置,后读取config.local.cache.json配置文件进行覆盖。
本发明的有益效果是:
在微服务架构体系中,配置中心客户端用于统一管理应用集群中的配置数据,以实现集群内部各个主机配置一致的目的。避免配置不一致导致的集群服务异常,传统的技术架构师实现的配置中心客户端,要么使用传统关系型数据库存储存在单点瓶颈,要么用到消息队列技术为多台配置中心提供服务,会出现消息丢失或重复消费,也无法达到最终一致性。本发明中选用Paxos协议的实现产品之一zookeeper用做配置数据存储服务,只需要增加少量的资源即可实现大量的微服务应用接入,并在配置数据中心的数据发生变更后,配置中心服务端通过Multi-Paxos算法使zookeeper服务集群的数据保持一致性。
本发明的配置中心客户端通过Watcher机制接收配置中心服务端中zookeeper服务集群的数据变更事件通知;利用zookeeper的watcher机制,配置中心客户端观察配置中心的所有配置数据变动,能够减少配置中心服务端的数据查询压力,支撑大规模集群的使用。
附图说明
图1是本发明一较佳实施方式的基于Paxos算法的微服务配置数据实时更新方法的结构框图。
图2是本发明一较佳实施方式的基于Paxos算法的微服务配置数据实时更新方法的Paxos算法流程图。
图3是本发明一较佳实施方式的基于Paxos算法的微服务配置数据实时更新方法的Multi-Paxos算法流程图。
图4是本发明一较佳实施方式的基于Paxos算法的微服务配置数据实时更新方法的事件通知流程图。
图5是本发明一较佳实施方式的基于Paxos算法的微服务配置数据实时更新方法的配置数据更新流程图。
图中,1-配置中心服务端,2-配置数据中心,3-微服务应用集群,4-配置中心客户端。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请同时参见图1至图3,本发明一较佳实施方式的基于Paxos算法的微服务配置数据实时更新方法,包括下述步骤:
S1、构建分布式的配置中心服务端1,并采用Paxos协议部署zookeeper服务集群作为配置中心服务端1的数据库。本实施例中,采用Paxos协议的实现产品之一zookeeper用做配置数据存储服务,只需要增加少量的资源即可实现大量的微服务应用接入。
配置中心服务端1提供配置数据中心2的配置数据修改页面,在配置数据中心2的数据发生变更后,配置中心服务端1通过Multi-Paxos算法使zookeeper服务集群的数据保持一致性。
配置中心服务端1提供配置数据修改页面,从配置中心服务端1遍历读取所有的配置数据,允许管理员修改后写入配置数据中心2。配置数据中心2的数据发生变更后,zookeeper服务集群使用的Multi-Paxos算法保证集群的数据一致性,最终实现zookeeper集群中的Leader节点、Learner节点的数据一致。
本实施例中,zookeeper服务集群的数据保持一致性的步骤为:
A1、针对每一个要确定的值,运行一次Paxos算法实例,形成决议,并对每一个Paxos实例使用唯一的Instance ID标识;
A2、在所有Proposers中选举一个Leader,由Leader唯一地提交Proposal给Acceptors进行表决。
Paxos算法包括下述步骤:
a1、Prepare阶段:Proposer向Acceptors发出Prepare请求,Acceptors针对收到的Prepare请求进行Promise承诺;
a2、Accept阶段:Proposer收到多数Acceptors承诺的Promise后,向Acceptors发出Propose请求,Acceptors针对收到的Propose请求进行Accept处理;
a3、第三阶段:Learn阶段。Proposer在收到多数Acceptors的Accept之后,标志着本次Accept成功,决议形成,将形成的决议发送给所有Learners。
如图3所述,Paxos算法运行在允许宕机故障的异步系统中,不要求可靠的消息传递,可容忍消息丢失、延迟、乱序以及重复。它利用大多数(Majority)机制保证了2F+1的容错能力,即2F+1个节点的系统最多允许F个节点同时出现故障。而且Paxos算法只能对一个值形成决议,决议的形成至少需要两次网络来回,在高并发情况下可能需要更多的网络来回。
本实施例的Multi-Paxos算法,如图2所示,在所有Proposers中选举一个Leader,由Leader唯一地提交Proposal给Acceptors进行表决,这样没有Proposer竞争,解决了活锁问题。在系统中仅有一个Leader进行Value提交的情况下,Prepare阶段就可以跳过,从而将两阶段变为一阶段,提高效率。
S2、微服务应用集群3的配置中心客户端4与配置中心服务端1建立连接,且配置中心客户端4通过Watcher机制接收配置中心服务端1中zookeeper服务集群的数据变更事件通知。
本实施例的配置中心客户端通过Watcher机制接收配置中心服务端中zookeeper服务集群的数据变更事件通知;利用zookeeper的watcher机制,配置中心客户端观察配置中心的所有配置数据变动,能够减少配置中心服务端的数据查询压力,支撑大规模集群的使用。
优选地,在步骤S2中,配置中心客户端4获得事件通知的步骤为:
B1、微服务应用集群3启动,每个微服务应用的实例创建一个配置中心客户端4;
B2、配置中心客户端4初始化并注册watcher;
B3、配置中心客户端4基于TCP/IP协议与配置中心服务端1建立长连接;
B4、配置中心服务端1的数据发生变更的时触发watcherEvent;
B5、配置中心客户端4所订阅的数据属于配置数据中心2的变更数据时,配置数据中心2获得事件通知。
在本实施例中,配置中心客户端4注册watcher,配置中心服务端1处理watcher并回调Watcher至配置中心服务端1。当每个微服务应用实例启动的时候,都会生成一个配置中心客户端4,该配置中心客户端4初始化时注册watcher,配置中心服务端1发生变更的时候会触发watcherEvent,所有订阅了此项数据的配置中心客户端4都会实时收到事件通知,且事件通知内容包括:事件类型,数据节点路径,数据节点状态。
在微服务应用集群3启动时,每个微服务应用实例创建一个配置中心客户端3,配置中心客户端3与配置中心服务端1基于TCP/IP协议建立长连接,当微服务应用集群3中有1000个实例,则建立1000个长连接。且配置中心服务端1采用zookeeper集群部署,支持集群水平扩容。
S3、配置中心客户端4根据事件通知执行process监听方法,并处理变更事件中微服务应用的实例数据变更操作,以使配置中心客户端4更新微服务应用中的配置数据,或者销毁微服务应用的实例后重新生成,且变更后的配置数据转换为json格式存储,配置数据的读取也使用json格式。
数据更新中,配置中心客户端4提供了配置数据处理工具,该工具使用配置中心服务端1的订阅功能监听某些节点的数据变动,根据通知事件连接zookeeper服务集群,请求获得指定路径application的配置数据,配置数据的更新支持直接修改微服务应用内的对象实例进行更新,且支持销毁原配置对象实例然后重新创建对象实例。
配置中心服务端1的数据发生变更后,微服务应用集群3中的所有运行实例中配置中心客户端3都会收到zookeeper的数据变更事件WatchedEvent,配置中心客户端执行process监听方法,在process处理阶段执行开始处理本实例中的数据变更操作。
本实施例中,在步骤S3中,process的操作步骤为:
C1、配置中心客户端4通过检查事件通知的类型,判断事件通知是否属于数据的变更,当事件通知为数据的变更,配置中心客户端4根据事件通知中的数据节点路径向配置中心服务端1查询最新的数据;当事件通知不为数据的变更,忽略此次事件通知;
C2、配置中心客户端4根据发生变更的数据节点路径,判断该数据所被使的配置类,并从本地应用实例的容器中获取配置对象,逐个进行数据变更的操作,直至该数据节点对应的所有配置类都更新完成。
优先地,配置中心客户端4与配置中心服务端1为同步连接时,先获取闩,避免出现脏读。
在步骤C2中,当一个数据节点存在多个watcher时,每一watcher都执行配置数据变更操作。
在步骤C2中,涉及到连接池配置时,先销毁再创建配置类实例,以进行数据变更的操作。
本实施例中,配置中心客户端4观察配置中心的所有配置数据变动,能够减少配置中心服务端的数据查询压力,支撑大规模集群的使用,通过理论预测和实际验证,15台zookeeper实例组成的配置中心服务端1,可以支撑上万个微服务应用的连接,实现数据实时更新。
本实施例中,配置中心客户端3提供配置数据的多种使用模式,允许开发模式、生产模式的区分。
在开发模式中,应用程序使用配置中心客户端3可以从本地配置文件读取数据。
在生产模式中,应用程序使用配置中心客户端3从配置中心服务端2读取配置数据,用于初始化应用配置对象。
在步骤S3,在生产模式中,遇到配置数据中心2异常,,配置中心客户端4执行下述步骤,以进行本地数据的缓存:
D1、将当前配置对象中Bean包含的配置数据转换为json格式;
D2、在本地配置文件目录生成config.local.cache.json文件存储当前生效的配置数据;
D3、启动微服务应用时,当配置中心客户端4与配置中心服务端1连接失败时,优先读取本地默认配置,后读取config.local.cache.json配置文件进行覆盖。如果配置数据中心2连接成功则以配置数据中心2的数据为准更新应用配置。
对于消息总线的架构,当依赖的消息组件出现问题时会造成了客户端应用配置数据无法达成最终一致性,虽然在小规模实现问题不大,但在大中型企业级应用中并不适用,比如配置生效需要重启,不支持客户端本地缓存,配置中心宕掉服务无法重启。本实施例的配置中心客户端3本地增加配置数据的缓存,实现配置数据统一和客户端缓存。
本实施例可通过配置数据运维平台,查看配置数据中心2的配置数据的定义,读取当前配置值,修改配置数据,删除数据。
如图4所示本实施例中较佳方式的事件通知过程为:
E1、微服务应用集群3启动,每个微服务应用的实例创建一个配置中心客户端4;
E 2、配置中心客户端4初始化并注册watcher;
E 3、配置中心客户端4基于TCP/IP协议与配置中心服务端1建立长连接;
E 4、配置中心服务端1的数据发生变更的时触发watcherEvent;
E 5、配置中心客户端4所订阅的数据属于配置数据中心2的变更数据时,配置数据中心2获得事件通知。
如图5所示本实施例中较佳方式的配置数据更新过程为:
F1、配置中心服务端1通过配置数据中心2进行配置数据修改
F2、在配置数据中心2的数据发生变更后,配置中心服务端1通过Multi-Paxos算法使zookeeper服务集群的数据保持一致性;
F3、配置中心客户端4与配置中心服务端1连接,当同步连接时,先获取闩;
F4、配置中心客户端4检查事件通知的类型,如果是数据变更,则根据事件通知中的数据节点路径向配置中心服务端查询最新的数据,如果不是数据变更,则忽略此次事件通知;
F5.配置中心客户端4根据发生变更的数据节点路径,判断该数据被哪些配置类使用,并从本地应用实例的容器中获取配置对象,逐个进行数据变更的操作,如果涉及到连接池等配置则先销毁、再创建配置类实例,实现变更操作,直到该数据节点对应的所有配置类都更新完成。
F6.如果一个数据节点有多个watcher存在,则这些watcher都执行配置数据变更操作。
Claims (10)
1.一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于,包括下述步骤,
S1、构建分布式的配置中心服务端(1),并采用Paxos协议部署zookeeper服务集群作为所述配置中心服务端(1)的数据库;所述配置中心服务端(1)提供配置数据中心(2)的配置数据修改页面,在所述配置数据中心(2)的数据发生变更后,所述配置中心服务端(1)通过Multi-Paxos算法使所述zookeeper服务集群的数据保持一致性;
S2、微服务应用集群(3)的配置中心客户端(4)与所述配置中心服务端(1)建立连接,且所述配置中心客户端(4)通过Watcher机制接收配置中心服务端(1)中zookeeper服务集群的数据变更事件通知;
S3、所述配置中心客户端(4)根据事件通知执行process并处理变更事件中微服务应用的实例数据变更操作,以使所述配置中心客户端(4)更新微服务应用中的配置数据,或者销毁微服务应用的实例后重新生成,且变更后的配置数据转换为json格式存储,配置数据的读取也使用json格式。
2.根据权利要求1所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:所述zookeeper服务集群的数据保持一致性的步骤为:
A1、针对每一个要确定的值,运行一次Paxos算法实例,形成决议,并对每一个Paxos实例使用唯一的Instance ID标识;
A2、在所有Proposers中选举一个Leader,由Leader唯一地提交Proposal给Acceptors进行表决。
3.根据权利要求2所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:所述Paxos算法包括下述步骤:
a1、Prepare阶段:Proposer向Acceptors发出Prepare请求,Acceptors针对收到的Prepare请求进行Promise承诺;
a2、Accept阶段:Proposer收到多数Acceptors承诺的Promise后,向Acceptors发出Propose请求,Acceptors针对收到的Propose请求进行Accept处理;
a3、第三阶段:Learn阶段。Proposer在收到多数Acceptors的Accept之后,标志着本次Accept成功,决议形成,将形成的决议发送给所有Learners。
4.根据权利要求1所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:在步骤S2中,所述配置中心客户端(4)获得事件通知的步骤为:
B1、微服务应用集群(3)启动,每个微服务应用的实例创建一个配置中心客户端(4);
B2、所述配置中心客户端(4)初始化并注册watcher;
B3、所述配置中心客户端(4)基于TCP/IP协议与所述配置中心服务端(1)建立长连接;
B4、所述配置中心服务端(1)的数据发生变更的时触发watcherEvent;
B5、所述配置中心客户端(4)所订阅的数据属于所述配置数据中心(2)的变更数据时,所述配置数据中心(2)获得事件通知。
5.根据权利要求1所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:所述事件通知包括事件类型,数据节点路径及数据节点状态。
6.根据权利要求1所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:在步骤S3中,process的操作步骤为:
C1、所述配置中心客户端(4)通过检查事件通知的类型,判断事件通知是否属于数据的变更,当事件通知为数据的变更,所述配置中心客户端(4)根据事件通知中的数据节点路径向所述配置中心服务端(1)查询最新的数据;当事件通知不为数据的变更,忽略此次事件通知;
C2、所述配置中心客户端(4)根据发生变更的数据节点路径,判断该数据所被使的配置类,并从本地应用实例的容器中获取配置对象,逐个进行数据变更的操作,直至该数据节点对应的所有配置类都更新完成。
7.根据权利要求6所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:所述配置中心客户端(4)与所述配置中心服务端(1)为同步连接时,先获取闩。
8.根据权利要求6所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:在步骤C2中,当一个数据节点存在多个watcher时,每一所述watcher都执行配置数据变更操作。
9.根据权利要求6所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:在步骤C2中,涉及到连接池配置时,先销毁再创建配置类实例,以进行数据变更的操作。
10.根据权利要求1所述的一种基于Paxos算法的微服务配置数据实时更新方法,其特征在于:在步骤S3中,当微服务应用使用所述配置中心客户端(4)从所述配置中心服务端(1)读取配置对象的数据,所述配置中心服务端(1)异常时,所述配置中心客户端(4)执行下述步骤,以进行本地数据的缓存,
D1、将当前配置对象中Bean包含的配置数据转换为json格式;
D2、在本地配置文件目录生成config.local.cache.json文件存储当前生效的配置数据;
D3、启动微服务应用时,当所述配置中心客户端(4)与所述配置中心服务端(1)连接失败时,优先读取本地默认配置,后读取config.local.cache.json配置文件进行覆盖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010671783.1A CN111930758A (zh) | 2020-07-14 | 2020-07-14 | 一种基于Paxos算法的微服务配置数据实时更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010671783.1A CN111930758A (zh) | 2020-07-14 | 2020-07-14 | 一种基于Paxos算法的微服务配置数据实时更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111930758A true CN111930758A (zh) | 2020-11-13 |
Family
ID=73314041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010671783.1A Pending CN111930758A (zh) | 2020-07-14 | 2020-07-14 | 一种基于Paxos算法的微服务配置数据实时更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930758A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363777A (zh) * | 2020-11-16 | 2021-02-12 | 中国电力财务有限公司 | 系统集群的配置方法及系统 |
CN112511359A (zh) * | 2021-02-04 | 2021-03-16 | 上海爱可生信息技术股份有限公司 | 服务系统中的配置变更方法、系统及计算机可读存储介质 |
CN112612804A (zh) * | 2020-12-22 | 2021-04-06 | 新华三大数据技术有限公司 | 一种服务治理参数更新方法及装置 |
CN112866190A (zh) * | 2020-12-25 | 2021-05-28 | 宝能(广州)汽车研究院有限公司 | 数据交互方法、存储介质、电子设备、车辆 |
CN112860342A (zh) * | 2021-02-10 | 2021-05-28 | 北京百度网讯科技有限公司 | 微服务配置的方法、装置、设备、系统以及存储介质 |
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113176854A (zh) * | 2021-04-28 | 2021-07-27 | 中国工商银行股份有限公司 | 服务治理数据的处理方法、装置及系统 |
CN115129740A (zh) * | 2022-09-01 | 2022-09-30 | 山东大学 | 一种云原生环境下的分布式微服务数据库更新方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725572B1 (en) * | 2003-12-30 | 2010-05-25 | Sap Ag | Notification architecture and method employed within a clustered node configuration |
US20120278293A1 (en) * | 2011-04-26 | 2012-11-01 | Bulkowski Brian J | Real-time transaction scheduling in a distributed database |
US20150067004A1 (en) * | 2005-01-12 | 2015-03-05 | Wandisco, Inc. | Distributed file system using consensus nodes |
US20150161016A1 (en) * | 2011-04-26 | 2015-06-11 | Brian J. Bulkowski | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm |
CN105703940A (zh) * | 2015-12-10 | 2016-06-22 | 中国电力科学研究院 | 一种面向多级调度分布式并行计算的监控系统及监控方法 |
US20160323138A1 (en) * | 2015-04-28 | 2016-11-03 | Microsoft Technology Licensing, Llc. | Scalable Event-Based Notifications |
CN106681861A (zh) * | 2016-12-08 | 2017-05-17 | 杭州销冠网络科技有限公司 | 一种新环境隔离的配置数据管理方法及系统 |
CN109995586A (zh) * | 2019-03-25 | 2019-07-09 | 江苏电力信息技术有限公司 | 基于微服务架构下的统一配置与动态配置参数刷新模型 |
-
2020
- 2020-07-14 CN CN202010671783.1A patent/CN111930758A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725572B1 (en) * | 2003-12-30 | 2010-05-25 | Sap Ag | Notification architecture and method employed within a clustered node configuration |
US20150067004A1 (en) * | 2005-01-12 | 2015-03-05 | Wandisco, Inc. | Distributed file system using consensus nodes |
US20120278293A1 (en) * | 2011-04-26 | 2012-11-01 | Bulkowski Brian J | Real-time transaction scheduling in a distributed database |
US20150161016A1 (en) * | 2011-04-26 | 2015-06-11 | Brian J. Bulkowski | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm |
US20160323138A1 (en) * | 2015-04-28 | 2016-11-03 | Microsoft Technology Licensing, Llc. | Scalable Event-Based Notifications |
CN105703940A (zh) * | 2015-12-10 | 2016-06-22 | 中国电力科学研究院 | 一种面向多级调度分布式并行计算的监控系统及监控方法 |
CN106681861A (zh) * | 2016-12-08 | 2017-05-17 | 杭州销冠网络科技有限公司 | 一种新环境隔离的配置数据管理方法及系统 |
CN109995586A (zh) * | 2019-03-25 | 2019-07-09 | 江苏电力信息技术有限公司 | 基于微服务架构下的统一配置与动态配置参数刷新模型 |
Non-Patent Citations (2)
Title |
---|
SUNNNY_RAN: "分布式一致性算法(Paxos&Raft)", pages 1 - 10, Retrieved from the Internet <URL:https://blog.csdn.net/Sunny_Ran/article/details/105670863> * |
徐传良: "zookeeper、Paxos算法、ZAB协议、CAP理论介绍", pages 1 - 9, Retrieved from the Internet <URL:https://blog.csdn.net/xuchuanliang11/article/details/103988990> * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363777A (zh) * | 2020-11-16 | 2021-02-12 | 中国电力财务有限公司 | 系统集群的配置方法及系统 |
CN112612804A (zh) * | 2020-12-22 | 2021-04-06 | 新华三大数据技术有限公司 | 一种服务治理参数更新方法及装置 |
CN112866190A (zh) * | 2020-12-25 | 2021-05-28 | 宝能(广州)汽车研究院有限公司 | 数据交互方法、存储介质、电子设备、车辆 |
CN112511359A (zh) * | 2021-02-04 | 2021-03-16 | 上海爱可生信息技术股份有限公司 | 服务系统中的配置变更方法、系统及计算机可读存储介质 |
JP2023520057A (ja) * | 2021-02-10 | 2023-05-15 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | マイクロサービス構成用方法、装置、電子デバイス、システム及び記憶媒体 |
CN112860342A (zh) * | 2021-02-10 | 2021-05-28 | 北京百度网讯科技有限公司 | 微服务配置的方法、装置、设备、系统以及存储介质 |
WO2022170782A1 (zh) * | 2021-02-10 | 2022-08-18 | 北京百度网讯科技有限公司 | 微服务配置的方法、装置、电子设备、系统以及存储介质 |
JP7450750B2 (ja) | 2021-02-10 | 2024-03-15 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | マイクロサービス構成用方法、装置、電子デバイス、システム及び記憶媒体 |
CN112860342B (zh) * | 2021-02-10 | 2024-03-12 | 北京百度网讯科技有限公司 | 微服务配置的方法、装置、设备、系统以及存储介质 |
CN113055465A (zh) * | 2021-03-11 | 2021-06-29 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113055465B (zh) * | 2021-03-11 | 2022-04-22 | 南京大学 | 一种支持事务一致性的微服务动态更新方法 |
CN113176854A (zh) * | 2021-04-28 | 2021-07-27 | 中国工商银行股份有限公司 | 服务治理数据的处理方法、装置及系统 |
CN115129740B (zh) * | 2022-09-01 | 2022-11-04 | 山东大学 | 一种云原生环境下的分布式微服务数据库更新方法及系统 |
CN115129740A (zh) * | 2022-09-01 | 2022-09-30 | 山东大学 | 一种云原生环境下的分布式微服务数据库更新方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930758A (zh) | 一种基于Paxos算法的微服务配置数据实时更新方法 | |
US6233623B1 (en) | Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state | |
JP4637842B2 (ja) | クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知 | |
US20010042139A1 (en) | Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state | |
US20080281938A1 (en) | Selecting a master node in a multi-node computer system | |
CN112565415B (zh) | 一种基于云边协同的跨地域资源纳管系统和纳管方法 | |
US8533525B2 (en) | Data management apparatus, monitoring apparatus, replica apparatus, cluster system, control method and computer-readable medium | |
CN107197012B (zh) | 一种基于元数据管理系统的服务发布及监管系统及方法 | |
CN112600891A (zh) | 一种基于信息物理融合的边云协同系统及工作方法 | |
CN113704354A (zh) | 一种数据同步方法及装置、计算机设备、存储介质 | |
CN112882738A (zh) | 一种微服务架构下的配置信息更新方法、装置及电子设备 | |
CN114448983A (zh) | 基于ZooKeeper的分布式数据交换方法 | |
US9569224B2 (en) | System and method for adaptively integrating a database state notification service with a distributed transactional middleware machine | |
CN110022257A (zh) | 分布式消息系统 | |
JP2016005275A (ja) | 相互接続ネットワークを管理する方法およびシステム | |
CN111475333B (zh) | 一种基于openstack的数据库备份方法及装置 | |
CN113766004A (zh) | 一种基于多云平台的灾备系统、方法及存储介质 | |
CN115225645B (zh) | 一种服务更新方法、装置、系统和存储介质 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN115964151A (zh) | 一种面向大数据处理的流计算任务调度系统及方法 | |
CN116132530A (zh) | 一种基于Netty框架应用Raft算法实现MQTT Broker服务器的方法 | |
US8190780B2 (en) | Cluster architecture having a star topology with centralized services | |
CN114860505A (zh) | 一种对象存储数据异步备份方法及系统 | |
CN116633724A (zh) | 多维度限流和动态路由的系统和部署方法 | |
CN112804343A (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 |