CN110798499B - 一种分布式服务的协调系统及方法 - Google Patents
一种分布式服务的协调系统及方法 Download PDFInfo
- Publication number
- CN110798499B CN110798499B CN201910330466.0A CN201910330466A CN110798499B CN 110798499 B CN110798499 B CN 110798499B CN 201910330466 A CN201910330466 A CN 201910330466A CN 110798499 B CN110798499 B CN 110798499B
- Authority
- CN
- China
- Prior art keywords
- service
- nodes
- master
- slave
- node
- 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
- 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
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- 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/30—Decision processes by autonomous network management units using voting and bidding
-
- 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
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于分布式服务集群管理领域,具体涉及一种分布式服务的协调系统及方法,包括开源软件Consul、服务集群和数据库;使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点负责数据写入操作,其余节点作为从节点,从数据库中读取并同步服务配置状态信息,当主节点故障时,自动从节点重新选出替代者;本方案无需实现复杂的分布式服务状态一致性算法,所有服务节点通过定时尝试竞选成为主节点,无节点数要求,竞选机制简单。
Description
技术领域
本发明属于分布式服务集群管理领域,具体涉及一种分布式服务的协调系统及方法。
背景技术
目前业界针对分布式服务协调通常使用以下方案:
方案一:程序集成选举算法:所有服务程序集成类似raft或paxos分布式一致性算法,各服务间通过协议进行竞选、投票,选举出一个Master,其它节点自动成为Slave,当Master失效时,其余Slave从新进行竞选出leader并替换Master;现有技术方案一的不足是,集成分布式一致性算法的方式,会给集群功能的开发以及运维带来额外的复杂度,并且要求集群节点数必须是基数。
方案二:引入第三方仲裁系统zookeeper,集群服务注册到zookeeper,最先注册的服务成为Master,其它节点注册成为Slave,同时启动监听器来监听Master的状态,当Master失效时,在Slave节点列表中选出一个替换成为Master;由Master接管服务并同步Slave状态;现有技术方案二的不足是,需要一个监听器来监听Master是否故障,并从Slave中重新选举出Master,监听器本身也可能是一个故障点,所以会带来复杂性,影响系统稳定。
发明内容
本发明的目的是提出一种分布式服务的协调系统及方法,以解决现有技术中分布式集群协调方案过于复杂,影响系统稳定的问题。
本发明通过以下技术方案实现:
一种分布式服务的协调系统,其特征在于,包括开源软件Consul、服务集群和数据库,其中,开源软件Consul用于提供服务发现和分布式锁机制;服务集群,由多个服务节点组成,用于实现内部业务逻辑并提供用户访问服务;数据库,用于持久化保存服务集群配置。
优选的,所述的服务节点包括一个主节点(Master)和多个从节点(Slave)。
优选的,使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点(Master)负责数据写入操作,其余节点作为从节点(Slave),从数据库中读取并同步服务配置状态信息,当主节点(Master)故障时,自动从节点(Slave)重新选出替代者。
优选的,所有服务节点通过定时尝试竞选成为主节点(Master)。
优选的,所述的从节点(Slave),定时从数据库中同步服务配置状态信息。
本发明还提供了一种分布式服务的协调方法,其特征在于:使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点(Master)负责数据写入操作,其余节点作为从节点(Slave),从数据库中读取并同步服务配置状态信息,当主节点(Master)故障时,自动从节点(Slave)重新选出替代者。
优选的,所述的分布式服务的协调方法具体包括如下步骤:
1)服务节点启动,并读取数据库信息初始化服务状态;
2)服务节点尝试从Consul获取一个分布式锁资源,成功获取到锁的节点注册服务到Consul作为主节点(Master),其余节点作为从节点(Slave);
3)通过Consul的服务发现功能找到主节点(Master);
4)向主节点(Master)发送请求,主节点(Master)修改服务状态,并将状态信息和最后更新时间写入数据库;
5)从节点(Slave)定时从数据库中同步服务配置状态,实现集群状态最终一致性;
6)当主节点(Master)故障时,其在Consul上的分布式锁资源被释放,其它启动定时尝试获取锁资源的从节点(Slave)将竞争成为新的主节点(Master)。
优选的,所有服务节点通过定时尝试竞选成为主节点(Master)。
优选的,所述的从节点(Slave),定时从数据库中同步服务配置状态信息。
优选的,所有服务节点组成服务集群,且各服务节点之间无需相互通信。
与现有技术相比,本发明至少具有下述的有益效果或优点:
本发明提供的这种分布式服务的协调系统及方法,无需实现复杂的分布式服务状态一致性算法,所有节点通过定时尝试竞选成为主节点(Master),无节点数要求,竞选机制简单;从节点(Slave)通过数据库同步服务状态,主节点(Master)不需要感知从节点(Slave)的存在,集群节点间不需要相互通信。
附图说明
以下将结合附图对本发明做进一步详细说明;
图1是本发明的分布式服务的系统架构图;
图2是本发明的分布式服务的协调控制流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种分布式服务的协调系统,如图1所示,包括开源软件Consul、服务集群和数据库,其中,开源软件Consul用于提供服务发现和分布式锁机制;服务集群,由多个服务节点组成,用于实现内部业务逻辑并提供用户访问服务;数据库,用于持久化保存服务集群配置。
优选的,所述的服务节点包括一个Master主节点和n-1个Slave从节点,其中n为大于2的整数。
优选的,使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个Master主节点负责数据写入操作,其余节点作为Slave从节点,从数据库中读取并同步服务配置状态信息,当Master主节点故障时,自动Slave从节点重新选出替代者。
优选的,所有服务节点通过定时尝试竞选成为Master主节点。
优选的,Slave从节点,定时从数据库中同步服务配置状态信息。
本发明还提供了一种分布式服务的协调方法,其特征在于:使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个Master主节点负责数据写入操作,其余节点作为Slave从节点,从数据库中读取并同步服务配置状态信息,当Master主节点故障时,自动Slave从节点重新选出替代者,控制流程如图2所示,具体包括如下工作流程:
1)服务节点启动,并读取数据库信息初始化服务状态;
2)服务节点尝试从Consul获取一个分布式锁资源,成功获取到锁的节点注册服务到Consul作为Master主节点,其余节点作为Slave从节点;
3)通过Consul的服务发现功能找到Master主节点;
4)向Master主节点发送请求,Master主节点修改服务状态,并将状态信息和最后更新时间写入数据库;
5)Slave从节点定时从数据库中同步服务配置状态,实现集群状态最终一致性;
6)当Master主节点故障时,其在Consul上的分布式锁资源被释放,其它启动定时尝试获取锁资源的Slave从节点将竞争成为新的Master主节点。
综上所述,本方案无需实现复杂的分布式服务状态一致性算法,所有节点通过定时尝试竞选成为Master主节点,无节点数要求,竞选机制简单;Slave从节点通过数据库同步服务状态,Master主节点不需要感知Slave从节点的存在,集群节点间不需要相互通信。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。在不脱离本发明之精神和范围内,所做的任何修改、等同替换、改进等,同样属于本发明的保护范围之内。
Claims (6)
1.一种分布式服务的协调方法,其特征在于:使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点(Master)负责数据写入操作,其余节点作为从节点(Slave),从数据库中读取并同步服务配置状态信息,当主节点(Master)故障时,自动从节点(Slave)重新选出替代者;
具体包括如下步骤:
1)服务节点启动,并读取数据库信息初始化服务配置状态;
2)服务节点尝试从Consul获取一个分布式锁资源,成功获取到锁的节点注册服务到Consul作为主节点(Master),其余节点作为从节点(Slave);
3)通过Consul的服务发现功能找到主节点(Master);
4)向主节点(Master)发送请求,主节点(Master)修改服务配置状态,并将服务配置状态信息和最后更新时间写入数据库;
5)从节点(Slave)定时从数据库中同步服务配置状态,实现集群状态最终一致性;
6)当主节点(Master)故障时,其在Consul上的分布式锁资源被释放,其它启动定时尝试获取锁资源的从节点(Slave)将竞争成为新的主节点(Master)。
2.根据权利要求1所述的分布式服务的协调方法,其特征在于,所有服务节点通过定时尝试竞选成为主节点(Master)。
3.根据权利要求1所述的分布式服务的协调方法,其特征在于,所有服务节点组成服务集群,且各服务节点之间无需相互通信。
4.一种应用于权利要求1所述的分布式服务的协调方法的分布式服务的协调系统,其特征在于,包括开源软件Consul、服务集群和数据库,其中,开源软件Consul用于提供服务发现和分布式锁机制;服务集群,由多个服务节点组成,用于实现内部业务逻辑并提供用户访问服务;数据库,用于持久化保存服务集群配置;
所述的服务节点包括一个主节点(Master)和多个从节点(Slave);
所述的分布式服务的协调系统,使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点(Master)负责数据写入操作,其余节点作为从节点(Slave),从数据库中读取并同步服务配置状态信息,当主节点(Master)故障时,自动从节点(Slave)重新选出替代者。
5.根据权利要求4所述的分布式服务的协调系统,其特征在于,所有服务节点通过定时尝试竞选成为主节点(Master)。
6.根据权利要求4所述的分布式服务的协调系统,其特征在于,所述的从节点(Slave),定时从数据库中同步服务配置状态信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018108770135 | 2018-08-03 | ||
CN201810877013.5A CN108881489A (zh) | 2018-08-03 | 2018-08-03 | 一种分布式服务的协调系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798499A CN110798499A (zh) | 2020-02-14 |
CN110798499B true CN110798499B (zh) | 2023-01-24 |
Family
ID=64307319
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810877013.5A Withdrawn CN108881489A (zh) | 2018-08-03 | 2018-08-03 | 一种分布式服务的协调系统及方法 |
CN201910330466.0A Active CN110798499B (zh) | 2018-08-03 | 2019-04-23 | 一种分布式服务的协调系统及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810877013.5A Withdrawn CN108881489A (zh) | 2018-08-03 | 2018-08-03 | 一种分布式服务的协调系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108881489A (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639794B (zh) * | 2018-12-10 | 2021-07-13 | 杭州数梦工场科技有限公司 | 一种有状态集群恢复方法、装置、设备及可读存储介质 |
CN109669820A (zh) * | 2018-12-24 | 2019-04-23 | 广州君海网络科技有限公司 | 基于Kettle的任务监管方法和装置 |
CN109677465A (zh) * | 2018-12-29 | 2019-04-26 | 卡斯柯信号有限公司 | 用于轨道交通综合监控系统的分布式实时系统架构 |
CN109857563B (zh) * | 2019-02-18 | 2021-04-27 | 重庆西部汽车试验场管理有限公司 | 任务执行方法、装置和任务执行系统 |
CN110853376B (zh) * | 2019-09-30 | 2021-12-03 | 重庆中信科信息技术有限公司 | 智能网络交通信号灯 |
CN111010448B (zh) * | 2019-12-23 | 2022-06-03 | 北京奇艺世纪科技有限公司 | 一种分布式消息系统和数据中心dc |
CN111400112B (zh) * | 2020-03-18 | 2021-04-13 | 深圳市腾讯计算机系统有限公司 | 分布式集群的存储系统的写入方法、装置及可读存储介质 |
CN111581284B (zh) * | 2020-04-29 | 2023-09-15 | 上海中通吉网络技术有限公司 | 一种数据库高可用性方法、装置、系统和存储介质 |
CN111769981A (zh) * | 2020-06-19 | 2020-10-13 | 苏州浪潮智能科技有限公司 | 去中心化架构主节点推选方法、数据文件传输方法、系统 |
CN111930441B (zh) * | 2020-08-10 | 2024-03-29 | 上海熙菱信息技术有限公司 | 一种基于consul的配置文件管理系统及方法 |
CN112769634B (zh) * | 2020-12-09 | 2023-11-07 | 航天信息股份有限公司 | 一种基于Zookeeper的可横向扩展的分布式系统及开发方法 |
CN112667349B (zh) * | 2020-12-23 | 2023-03-07 | 浪潮云信息技术股份公司 | 一种基于Kubernetes的分布式选举的方法 |
CN112822238B (zh) * | 2020-12-29 | 2023-05-26 | 深圳市金证科技股份有限公司 | 一种主节点的切换方法以及计算机可读存储介质 |
CN114826892A (zh) * | 2022-04-28 | 2022-07-29 | 济南浪潮数据技术有限公司 | 一种集群节点控制方法、装置、设备及介质 |
CN114785640B (zh) * | 2022-06-23 | 2022-09-20 | 奇秦科技(北京)股份有限公司 | 一种物联网网关集群组件设计方法 |
CN115277379B (zh) * | 2022-07-08 | 2023-08-01 | 北京城市网邻信息技术有限公司 | 分布式锁容灾处理方法、装置、电子设备及存储介质 |
CN115421896A (zh) * | 2022-11-01 | 2022-12-02 | 联通智网科技股份有限公司 | 数据采集系统的节点调度方法、装置、服务器和存储介质 |
CN117539642B (zh) * | 2024-01-09 | 2024-04-02 | 上海晨钦信息科技服务有限公司 | 一种信用卡分布式调度平台及调度方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
WO2010034608A1 (en) * | 2008-09-24 | 2010-04-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for configuration of processing clusters |
CN104767794A (zh) * | 2015-03-13 | 2015-07-08 | 青岛海信传媒网络技术有限公司 | 一种分布式系统中的节点选举方法及节点 |
CN107783842A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种分布式锁实现方法、设备及存储装置 |
-
2018
- 2018-08-03 CN CN201810877013.5A patent/CN108881489A/zh not_active Withdrawn
-
2019
- 2019-04-23 CN CN201910330466.0A patent/CN110798499B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
WO2010034608A1 (en) * | 2008-09-24 | 2010-04-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for configuration of processing clusters |
CN104767794A (zh) * | 2015-03-13 | 2015-07-08 | 青岛海信传媒网络技术有限公司 | 一种分布式系统中的节点选举方法及节点 |
CN108183971A (zh) * | 2015-03-13 | 2018-06-19 | 聚好看科技股份有限公司 | 一种分布式系统中的节点选举方法 |
CN107783842A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种分布式锁实现方法、设备及存储装置 |
Non-Patent Citations (4)
Title |
---|
Ceph分布式系统的ISCSI高可用集群;何汉东等;《计算机系统应用》;20170715(第07期);全文 * |
consul分布式服务注册和发现;ihanxiao2100;《51CTO博客》;20160330;正文第1-9页 * |
基于Consul的分布式锁实现;翟永超;《51CTO博客》;20170413;正文第1-4页 * |
基于Docker、Swarm、Consul与Nginx构建高可用和可扩展Web服务框架的方法;张宁溪等;《电信技术》;20161125(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108881489A (zh) | 2018-11-23 |
CN110798499A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798499B (zh) | 一种分布式服务的协调系统及方法 | |
US6532494B1 (en) | Closed-loop node membership monitor for network clusters | |
EP0643521A2 (en) | Method for building a sub-network in a distributed voice massaging system | |
US7020695B1 (en) | Using a cluster-wide shared repository to provide the latest consistent definition of the cluster (avoiding the partition-in time problem) | |
CN109815248B (zh) | 一种基于Zookeeper的分布式架构数据一致性方法 | |
US6871222B1 (en) | Quorumless cluster using disk-based messaging | |
CN116107828A (zh) | 主节点选择方法、分布式数据库及存储介质 | |
US7076783B1 (en) | Providing figure of merit vote from application executing on a partitioned cluster | |
CN112925614A (zh) | 一种分布式事务处理方法、装置、介质和设备 | |
CN110545207A (zh) | 一种同步自动化的智能dns系统及配置方法 | |
US20200348849A1 (en) | Replica processing method and node, storage system, server, and readable medium | |
US20020120733A1 (en) | Method, program and arrangement for synchronizing a network manager to a network agent | |
CN112667409A (zh) | 一种可重入的分布式排它锁实现方法 | |
CN109088937B (zh) | 一种基于统一管理的集群授权方法及装置 | |
JPH0646130A (ja) | 通信ネットワークの分散呼処理システム用ソフトウエアの更新方法 | |
CN114726867B (zh) | 一种基于Raft的热备多主方法 | |
CN116185589A (zh) | 调度权限获取方法、设备、系统及存储介质 | |
CN114880717A (zh) | 数据归档方法及装置 | |
CN114610545A (zh) | 减少私有云计算的单点故障的方法、系统、设备及介质 | |
US11416449B2 (en) | Method of synchronous deletion for distributed storage system | |
US6055545A (en) | Updating and reference management system and reference timing control system of shared memory | |
CN104052799A (zh) | 一种利用资源环实现高可用存储的方法 | |
CN106372165A (zh) | 一种基于totem协议的集群的leader选取方法及装置 | |
CN110266520A (zh) | 一种基于sdn控制器的可靠高效的选举方法 | |
CN107153594B (zh) | 分布式数据库系统的ha组件选主方法及其系统 |
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 |