CN108881489A - 一种分布式服务的协调系统及方法 - Google Patents

一种分布式服务的协调系统及方法 Download PDF

Info

Publication number
CN108881489A
CN108881489A CN201810877013.5A CN201810877013A CN108881489A CN 108881489 A CN108881489 A CN 108881489A CN 201810877013 A CN201810877013 A CN 201810877013A CN 108881489 A CN108881489 A CN 108881489A
Authority
CN
China
Prior art keywords
node
service
master
slave
host 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.)
Withdrawn
Application number
CN201810877013.5A
Other languages
English (en)
Inventor
范日明
李文杰
林楷填
黄松钦
王杰
王鹏
黄仝宇
汪刚
宋兵
宋一兵
侯玉清
刘双广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gosuncn Technology Group Co Ltd
Original Assignee
Gosuncn Technology Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Gosuncn Technology Group Co Ltd filed Critical Gosuncn Technology Group Co Ltd
Priority to CN201810877013.5A priority Critical patent/CN108881489A/zh
Publication of CN108881489A publication Critical patent/CN108881489A/zh
Priority to CN201910330466.0A priority patent/CN110798499B/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

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 (10)

1.一种分布式服务的协调系统,其特征在于,包括开源软件Consul、服务集群和数据库,其中,开源软件Consul用于提供服务发现和分布式锁机制;服务集群,由多个服务节点组成,用于实现内部业务逻辑并提供用户访问服务;数据库,用于持久化保存服务集群配置。
2.根据权利要求1所述的分布式服务的协调系统,其特征在于,所述的服务节点包括一个主节点(Master)和多个从节点(Slave)。
3.根据权利要求1所述的分布式服务的协调系统,其特征在于,使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点(Master)负责数据写入操作,其余节点作为从节点(Slave),从数据库中读取并同步服务配置状态信息,当主节点(Master)故障时,自动从节点(Slave)重新选出替代者。
4.根据权利要求3所述的分布式服务的协调系统,其特征在于,所有服务节点通过定时尝试竞选成为主节点(Master)。
5.根据权利要求3所述的分布式服务的协调系统,其特征在于,所述的从节点(Slave),定时从数据库中同步服务配置状态信息。
6.一种分布式服务的协调方法,其特征在于:使用开源软件Consul提供的分布式锁机制,从服务节点中选举出一个主节点(Master)负责数据写入操作,其余节点作为从节点(Slave),从数据库中读取并同步服务配置状态信息,当主节点(Master)故障时,自动从节点(Slave)重新选出替代者。
7.根据权利要求6所述的分布式服务的协调方法,其特征在于,具体包括如下步骤:
1)服务节点启动,并读取数据库信息初始化服务状态;
2)服务节点尝试从Consul获取一个分布式锁资源,成功获取到锁的节点注册服务到Consul作为主节点(Master),其余节点作为从节点(Slave);
3)通过Consul的服务发现功能找到主节点(Master);
4)向主节点(Master)发送请求,主节点(Master)修改服务状态,并将状态信息和最后更新时间写入数据库;
5)从节点(Slave)定时从数据库中同步服务配置状态,实现集群状态最终一致性;
6)当主节点(Master)故障时,其在Consul上的分布式锁资源被释放,其它启动定时尝试获取锁资源的从节点(Slave)将竞争成为新的主节点(Master)。
8.根据权利要求6所述的分布式服务的协调方法,其特征在于,所有服务节点通过定时尝试竞选成为主节点(Master)。
9.根据权利要求6所述的分布式服务的协调方法,其特征在于,所述的从节点(Slave),定时从数据库中同步服务配置状态信息。
10.根据权利要求6所述的分布式服务的协调方法,其特征在于,所有服务节点组成服务集群,且各服务节点之间无需相互通信。
CN201810877013.5A 2018-08-03 2018-08-03 一种分布式服务的协调系统及方法 Withdrawn CN108881489A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810877013.5A CN108881489A (zh) 2018-08-03 2018-08-03 一种分布式服务的协调系统及方法
CN201910330466.0A CN110798499B (zh) 2018-08-03 2019-04-23 一种分布式服务的协调系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810877013.5A CN108881489A (zh) 2018-08-03 2018-08-03 一种分布式服务的协调系统及方法

Publications (1)

Publication Number Publication Date
CN108881489A true CN108881489A (zh) 2018-11-23

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 After (1)

Application Number Title Priority Date Filing Date
CN201910330466.0A Active CN110798499B (zh) 2018-08-03 2019-04-23 一种分布式服务的协调系统及方法

Country Status (1)

Country Link
CN (2) CN108881489A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639794A (zh) * 2018-12-10 2019-04-16 杭州数梦工场科技有限公司 一种有状态集群恢复方法、装置、设备及可读存储介质
CN109669820A (zh) * 2018-12-24 2019-04-23 广州君海网络科技有限公司 基于Kettle的任务监管方法和装置
CN109677465A (zh) * 2018-12-29 2019-04-26 卡斯柯信号有限公司 用于轨道交通综合监控系统的分布式实时系统架构
CN109857563A (zh) * 2019-02-18 2019-06-07 重庆西部汽车试验场管理有限公司 任务执行方法、装置和任务执行系统
CN110853376A (zh) * 2019-09-30 2020-02-28 重庆中信科信息技术有限公司 智能网络交通信号灯
CN111010448A (zh) * 2019-12-23 2020-04-14 北京奇艺世纪科技有限公司 一种分布式消息系统和数据中心dc
CN111400112A (zh) * 2020-03-18 2020-07-10 深圳市腾讯计算机系统有限公司 分布式集群的存储系统的写入方法、装置及可读存储介质
CN111769981A (zh) * 2020-06-19 2020-10-13 苏州浪潮智能科技有限公司 去中心化架构主节点推选方法、数据文件传输方法、系统
CN112667349A (zh) * 2020-12-23 2021-04-16 浪潮云信息技术股份公司 一种基于Kubernetes的分布式选举的方法
CN112769634A (zh) * 2020-12-09 2021-05-07 航天信息股份有限公司 一种基于Zookeeper的可横向扩展的分布式系统及开发方法
CN112822238A (zh) * 2020-12-29 2021-05-18 深圳市金证科技股份有限公司 一种主节点的切换方法以及计算机可读存储介质
CN114785640A (zh) * 2022-06-23 2022-07-22 奇秦科技(北京)股份有限公司 一种物联网网关集群组件设计方法
CN114826892A (zh) * 2022-04-28 2022-07-29 济南浪潮数据技术有限公司 一种集群节点控制方法、装置、设备及介质
CN115277379A (zh) * 2022-07-08 2022-11-01 北京城市网邻信息技术有限公司 分布式锁容灾处理方法、装置、电子设备及存储介质
CN115421896A (zh) * 2022-11-01 2022-12-02 联通智网科技股份有限公司 数据采集系统的节点调度方法、装置、服务器和存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581284B (zh) * 2020-04-29 2023-09-15 上海中通吉网络技术有限公司 一种数据库高可用性方法、装置、系统和存储介质
CN111930441B (zh) * 2020-08-10 2024-03-29 上海熙菱信息技术有限公司 一种基于consul的配置文件管理系统及方法
CN117539642B (zh) * 2024-01-09 2024-04-02 上海晨钦信息科技服务有限公司 一种信用卡分布式调度平台及调度方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252603B (zh) * 2008-04-11 2011-03-30 清华大学 基于存储区域网络san的集群分布式锁管理方法
WO2010034608A1 (en) * 2008-09-24 2010-04-01 Telefonaktiebolaget Lm Ericsson (Publ) System and method for configuration of processing clusters
CN108183971B (zh) * 2015-03-13 2021-08-10 聚好看科技股份有限公司 一种分布式系统中的节点选举方法
CN107783842B (zh) * 2016-08-31 2021-09-03 阿里巴巴集团控股有限公司 一种分布式锁实现方法、设备及存储装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639794B (zh) * 2018-12-10 2021-07-13 杭州数梦工场科技有限公司 一种有状态集群恢复方法、装置、设备及可读存储介质
CN109639794A (zh) * 2018-12-10 2019-04-16 杭州数梦工场科技有限公司 一种有状态集群恢复方法、装置、设备及可读存储介质
CN109669820A (zh) * 2018-12-24 2019-04-23 广州君海网络科技有限公司 基于Kettle的任务监管方法和装置
CN109677465A (zh) * 2018-12-29 2019-04-26 卡斯柯信号有限公司 用于轨道交通综合监控系统的分布式实时系统架构
CN109857563A (zh) * 2019-02-18 2019-06-07 重庆西部汽车试验场管理有限公司 任务执行方法、装置和任务执行系统
CN109857563B (zh) * 2019-02-18 2021-04-27 重庆西部汽车试验场管理有限公司 任务执行方法、装置和任务执行系统
CN110853376A (zh) * 2019-09-30 2020-02-28 重庆中信科信息技术有限公司 智能网络交通信号灯
CN111010448A (zh) * 2019-12-23 2020-04-14 北京奇艺世纪科技有限公司 一种分布式消息系统和数据中心dc
CN111010448B (zh) * 2019-12-23 2022-06-03 北京奇艺世纪科技有限公司 一种分布式消息系统和数据中心dc
CN111400112A (zh) * 2020-03-18 2020-07-10 深圳市腾讯计算机系统有限公司 分布式集群的存储系统的写入方法、装置及可读存储介质
CN111769981A (zh) * 2020-06-19 2020-10-13 苏州浪潮智能科技有限公司 去中心化架构主节点推选方法、数据文件传输方法、系统
CN112769634A (zh) * 2020-12-09 2021-05-07 航天信息股份有限公司 一种基于Zookeeper的可横向扩展的分布式系统及开发方法
CN112769634B (zh) * 2020-12-09 2023-11-07 航天信息股份有限公司 一种基于Zookeeper的可横向扩展的分布式系统及开发方法
CN112667349A (zh) * 2020-12-23 2021-04-16 浪潮云信息技术股份公司 一种基于Kubernetes的分布式选举的方法
CN112667349B (zh) * 2020-12-23 2023-03-07 浪潮云信息技术股份公司 一种基于Kubernetes的分布式选举的方法
CN112822238A (zh) * 2020-12-29 2021-05-18 深圳市金证科技股份有限公司 一种主节点的切换方法以及计算机可读存储介质
CN114826892A (zh) * 2022-04-28 2022-07-29 济南浪潮数据技术有限公司 一种集群节点控制方法、装置、设备及介质
CN114785640A (zh) * 2022-06-23 2022-07-22 奇秦科技(北京)股份有限公司 一种物联网网关集群组件设计方法
CN115277379A (zh) * 2022-07-08 2022-11-01 北京城市网邻信息技术有限公司 分布式锁容灾处理方法、装置、电子设备及存储介质
CN115421896A (zh) * 2022-11-01 2022-12-02 联通智网科技股份有限公司 数据采集系统的节点调度方法、装置、服务器和存储介质

Also Published As

Publication number Publication date
CN110798499B (zh) 2023-01-24
CN110798499A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN108881489A (zh) 一种分布式服务的协调系统及方法
CN106775959A (zh) 分布式事务处理方法和系统
CN104767794B (zh) 一种分布式系统中的节点选举方法及节点
CN105119736B (zh) 网络功能虚拟化架构中数据检查的方法和装置
CN111708840B (zh) 一种基于主副双层的联盟链动态共识方法
CN104917792B (zh) 民主自治的集群管理方法和系统
CN105554142B (zh) 消息推送的方法、装置及系统
CN105357042B (zh) 一种高可用集群系统及其主节点和从节点
AT506623A1 (de) Verfahren zur sicheren dynamischen bandbreitenallokation in tt-ethernet
CN106330786A (zh) Mac地址的同步方法、装置及系统
CN102299814B (zh) 一种snmp代理上管理信息库的升级方法和系统
CN110661641A (zh) 一种虚拟网络功能vnf部署方法及装置
CN107562547B (zh) 一种ctdb集群系统及创建方法、创建系统
CN109542627A (zh) 节点切换方法、装置、管理机、节点设备和分布式系统
GB2505229B (en) Upgrading nodes
CN108494828A (zh) 一种节点数据的更新方法、介质、装置和计算设备
CN112995335B (zh) 一种位置感知的容器调度优化系统及方法
CN114020279A (zh) 应用软件分布式部署方法、系统、终端及存储介质
CN110532114B (zh) 基于消息队列的定时任务管理系统及分配方法
CN109561127A (zh) 用于软件定义网络中的数据同步的方法、设备和计算机可读介质
CN112667409A (zh) 一种可重入的分布式排它锁实现方法
CN106709051A (zh) 一种比对信息展示的方法、设备及系统
CN110489491A (zh) 一种适用于a/b网双集群的全量数据同步装置
CN109324764A (zh) 一种分布式独占锁的实现方法和装置
CN112714010B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20181123

WW01 Invention patent application withdrawn after publication