CN112019387A - 一种分布式服务注册中心构建方法 - Google Patents
一种分布式服务注册中心构建方法 Download PDFInfo
- Publication number
- CN112019387A CN112019387A CN202010910847.9A CN202010910847A CN112019387A CN 112019387 A CN112019387 A CN 112019387A CN 202010910847 A CN202010910847 A CN 202010910847A CN 112019387 A CN112019387 A CN 112019387A
- Authority
- CN
- China
- Prior art keywords
- service
- node machine
- configuring
- leader
- registry
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 5
- 230000001360 synchronised effect Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 17
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 4
- 230000003362 replicative effect Effects 0.000 claims 1
- 239000012634 fragment Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- 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/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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)
- Hardware Redundancy (AREA)
Abstract
一种分布式服务注册中心构建方法,包括以下步骤:Step1、将多台主节点机器通过Raft协议配置到同一分布式架构中;并选举出Leader主节点机器;Step2、为每台主节点机配置ReadOnlyMap+ReadWriteMap数据结构方式;Step3、配置Leader主节点机器接收客户端发起的服务注册请求,接收到服务注册请求后,首先在ReadOnlyMap中查询是否有该服务,若是,则返回已注册,若否,则在ReadWriteMap中查询是否有该服务,若是,则返回已注册,若否,则将该服务注册至核心注册表,并将该服务从核心注册表加载出来放入ReadWriteMap和ReadOnlyMap中;Step4、配置Leader主节点机器在更新核心注册表后,将核心注册表同步到其他主节点机器中。本发明构建出的分布式服务注册中心,具有良好的扩展性,且抗高并发能力强。
Description
技术领域
本发明属于软件技术领域,尤其涉及一种分布式注册中心。
背景技术
为了适应B2B(Business To Business)电子商务的需要,企业IT架构正逐步转向面向服务的架构(Service Oriented Architecture,简称SOA),服务提供者利用WSDL描述服务接口,将Web服务发布到服务注册库中,以便服务请求者获取该服务信息。可见,服务注册库是SOA结构中的重要组成部分,而Web服务中定义服务注册库的主要标准是UDDI系列规范。
UDDI是集中式结构,随着服务数量的不断增加,其维护、管理、将变得困难,除此之外,这种集中式的结构还有很多不足之处:扩展性差、抗高并发能力低。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种分布式服务注册中心构建方法,构建出的分布式服务注册中心,具有良好的扩展性,且抗高并发能力强。
为解决上述技术问题,本发明采用的技术方案是:一种分布式服务注册中心构建方法,包括以下步骤:
Step1、将多台主节点机器通过Raft协议配置到同一分布式架构中;并选举出Leader主节点机器;
Step2、为每台主节点机配置ReadOnlyMap+ReadWriteMap数据结构方式;
Step3、配置Leader主节点机器接收客户端发起的服务注册请求,接收到服务注册请求后,首先在ReadOnlyMap中查询是否有该服务,若是,则返回已注册,若否,则在ReadWriteMap中查询是否有该服务,若是,则返回已注册,若否,则将该服务注册至核心注册表,并将该服务从核心注册表加载出来放入ReadWriteMap和ReadOnlyMap中;
Step4、配置Leader主节点机器在更新核心注册表后,将核心注册表同步到其他主节点机器中。
上述一种分布式服务注册中心构建方法,还包括Step6、为每个主节点机器配置备用节点机器,并将主节点机器中的数据复制到备用节点机器中。
上述一种分布式服务注册中心构建方法,所述Step6中,还包括配置服务对备用节点机器长连接订阅,配置该备用节点机器对应的主节点机器对该服务进行订阅反向推送。
上述一种分布式服务注册中心构建方法,还包括Step7、配置Leader主节点机器定时向客户端上报心跳。
上述一种分布式服务注册中心构建方法,还包括Step8、为多台主节点机器配置数据分片存储机制。
上述一种分布式服务注册中心构建方法,还包括Step9、为每台主节点机器配置服务故障检测机制。
上述一种分布式服务注册中心构建方法,还包括Step10、为每个主节点机器配置WAL日志算法。
本发明与现有技术相比具有以下优点:
1、本发明通过Raft协议将多台主节点机器配置到同一分布式架构,使Leader主节点机器是动态变化的,对于服务注册请求,能够具有良好的接受效果,平衡各个主节点机器的压力。
2、本发明通过配置ReadOnlyMap+ReadWriteMap数据结构,能够有效的减小对核心注册表的加锁次数,避免掉多线程频繁对同一个内存数据结构频繁的读写,出现大量的锁互斥,避免涉及到大量的加锁和等待的过程。
3、本发明通过将核心注册表同步到其他主节点机器中,保证了数据的一致性,且防止当前Leader主节点机器挂掉后,核心注册表数据出现断层。
4、本发明通过设置备用节点机器,保证了数据的安全性,实现构建出的分布式服务注册中心高可用。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明构建出的分布式服务注册中心的原理框图。
具体实施方式
如图1所示,一种分布式服务注册中心构建方法,包括以下步骤:
Step1、将多台主节点机器通过Raft协议配置到同一分布式架构中;并选举出Leader主节点机器;
在选举时,若有多个candidate主节点机器同时竞选,则依据主节点机器中的可用空闲空间大小作为投票参考信息,优选投票给空闲空间最大的candidate主节点机器;若空闲空间最大的candidate主节点机器超过一个,则随机投票;
本实施例中,每个所述Leader主节点机器均具有一个任期term,在任期term结束后,重新发起选举,且下一个Leader主节点机器的任期term递增,通过使任期term每次递增,可实现逻辑时钟的作用;
Step2、为每台主节点机配置ReadOnlyMap+ReadWriteMap数据结构方式;
通过配置ReadOnlyMap+ReadWriteMap数据结构,能够有效的减小对核心注册表的加锁次数,避免掉多线程频繁对同一个内存数据结构频繁的读写,出现大量的锁互斥,避免涉及到大量的加锁和等待的过程;
Step3、配置Leader主节点机器接收客户端发起的服务注册请求,接收到服务注册请求后,首先在ReadOnlyMap中查询是否有该服务,若是,则返回已注册,若否,则在ReadWriteMap中查询是否有该服务,若是,则返回已注册,若否,则将该服务注册至核心注册表,并将该服务从核心注册表加载出来放入ReadWriteMap和ReadOnlyMap中;
Step4、配置Leader主节点机器在更新核心注册表后,将核心注册表同步到其他主节点机器中。
通过将核心注册表同步到其他主节点机器中,保证了数据的一致性,且防止当前Leader主节点机器挂掉后,核心注册表数据出现断层。
本实施例中,还包括Step6、为每个主节点机器配置备用节点机器,并将主节点机器中的数据复制到备用节点机器中。
通过设置备用节点机器,保证了数据的安全性,实现构建出的分布式服务注册中心高可用。
本实施例中,所述Step6中,还包括配置服务对备用节点机器长连接订阅,配置该备用节点机器对应的主节点机器对该服务进行订阅反向推送。
通过配置订阅,使备用节点机器和主节点机器中的数据发送变化时,能够及时的让服务感知,防止数据调取错误、失败等产生。
本实施例中,还包括Step7、配置Leader主节点机器定时向客户端上报心跳。
通过配置Leader主节点机器定时向客户端上报心跳,能够让客户端及时发现Leader主节点机器的情况,防止在Leader主节点机器挂掉后,还有很多的访问过来,及时反馈客户端,提升用户体验。
本实施例中,还包括Step8、为多台主节点机器配置数据分片存储机制。通过配置数据分片存储机制,可以有效的让数据分块存储,减少数据集中,实现负载分割,增加数据可存储量。
本实施例中,还包括Step9、为每台主节点机器配置服务故障检测机制。
配置的服务故障检测机制为实时检测磁盘信息,当出现磁盘崩坏或数据无法写入时,能够及时通知其他主节点机器,将存在故障的主节点机器剔除出去,启用备用节点机器。
本实施例中,还包括Step10、为每个主节点机器配置WAL日志算法。
WAL(Write-AheadLogging)日志算法:数据库中一种高效的日志算法,对于非内存数据库而言,磁盘I/O操作是数据库效率的一大瓶颈。在相同的数据量下,采用WAL日志的数据库系统在事务提交时,磁盘写操作只有传统的回滚日志的一半左右,大大提高了数据库磁盘I/O操作的效率,从而提高了数据库的性能。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
Claims (7)
1.一种分布式服务注册中心构建方法,其特征在于,包括以下步骤:
Step1、将多台主节点机器通过Raft协议配置到同一分布式架构中;并选举出Leader主节点机器;
Step2、为每台主节点机配置ReadOnlyMap+ReadWriteMap数据结构方式;
Step3、配置Leader主节点机器接收客户端发起的服务注册请求,接收到服务注册请求后,首先在ReadOnlyMap中查询是否有该服务,若是,则返回已注册,若否,则在ReadWriteMap中查询是否有该服务,若是,则返回已注册,若否,则将该服务注册至核心注册表,并将该服务从核心注册表加载出来放入ReadWriteMap和ReadOnlyMap中;
Step4、配置Leader主节点机器在更新核心注册表后,将核心注册表同步到其他主节点机器中。
2.按照权利要求1所述的一种分布式服务注册中心构建方法,其特征在于,还包括Step6、为每个主节点机器配置备用节点机器,并将主节点机器中的数据复制到备用节点机器中。
3.按照权利要求1所述的一种分布式服务注册中心构建方法,其特征在于,所述Step6中,还包括配置服务对备用节点机器长连接订阅,配置该备用节点机器对应的主节点机器对该服务进行订阅反向推送。
4.按照权利要求1所述的一种分布式服务注册中心构建方法,其特征在于,还包括Step7、配置Leader主节点机器定时向客户端上报心跳。
5.按照权利要求1所述的一种分布式服务注册中心构建方法,其特征在于,还包括Step8、为多台主节点机器配置数据分片存储机制。
6.按照权利要求1所述的一种分布式服务注册中心构建方法,其特征在于,还包括Step9、为每台主节点机器配置服务故障检测机制。
7.按照权利要求1所述的一种分布式服务注册中心构建方法,其特征在于,还包括Step10、为每个主节点机器配置WAL日志算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010910847.9A CN112019387A (zh) | 2020-09-02 | 2020-09-02 | 一种分布式服务注册中心构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010910847.9A CN112019387A (zh) | 2020-09-02 | 2020-09-02 | 一种分布式服务注册中心构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112019387A true CN112019387A (zh) | 2020-12-01 |
Family
ID=73516810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010910847.9A Pending CN112019387A (zh) | 2020-09-02 | 2020-09-02 | 一种分布式服务注册中心构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019387A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094224A (zh) * | 2006-06-22 | 2007-12-26 | 华为技术有限公司 | 提供服务、访问服务、注册与注销服务的方法及系统 |
CN101132402A (zh) * | 2007-08-08 | 2008-02-27 | 南京大学 | 基于行为一致条件下进行服务发现和替换方法 |
CN109257440A (zh) * | 2018-10-29 | 2019-01-22 | 南京南瑞信息通信科技有限公司 | 一种基于服务注册中心的服务发现和客户端负载均衡方法 |
CN110324177A (zh) * | 2019-05-31 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种微服务架构下的服务请求处理方法、系统及介质 |
-
2020
- 2020-09-02 CN CN202010910847.9A patent/CN112019387A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094224A (zh) * | 2006-06-22 | 2007-12-26 | 华为技术有限公司 | 提供服务、访问服务、注册与注销服务的方法及系统 |
CN101132402A (zh) * | 2007-08-08 | 2008-02-27 | 南京大学 | 基于行为一致条件下进行服务发现和替换方法 |
CN109257440A (zh) * | 2018-10-29 | 2019-01-22 | 南京南瑞信息通信科技有限公司 | 一种基于服务注册中心的服务发现和客户端负载均衡方法 |
CN110324177A (zh) * | 2019-05-31 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种微服务架构下的服务请求处理方法、系统及介质 |
Non-Patent Citations (2)
Title |
---|
KING-DA: "springCloud注册服务于发现之Eureka", 《博客园》 * |
张育军,黄红元主编: "《上海证券交易所联合研究报告 2011 证券信息前沿技术专集》", 上海人民出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899684B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US11388043B2 (en) | System and method for data replication using a single master failover protocol | |
US10846305B2 (en) | Large distributed database clustering systems and methods | |
US10929240B2 (en) | System and method for adjusting membership of a data replication group | |
US8055735B2 (en) | Method and system for forming a cluster of networked nodes | |
CN107771321B (zh) | 数据中心中的恢复 | |
US9201742B2 (en) | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm | |
US10713275B2 (en) | System and method for augmenting consensus election in a distributed database | |
US9817703B1 (en) | Distributed lock management using conditional updates to a distributed key value data store | |
US7818370B2 (en) | Event server using clustering | |
US9411873B2 (en) | System and method for splitting a replicated data partition | |
US10248704B2 (en) | System and method for log conflict detection and resolution in a data store | |
US9489434B1 (en) | System and method for replication log branching avoidance using post-failover rejoin | |
US20130110781A1 (en) | Server replication and transaction commitment | |
JP7549137B2 (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
US10366106B2 (en) | Quorum-based replication of data records | |
US10275400B1 (en) | Systems and methods for forming a fault-tolerant federated distributed database | |
JP2014532210A (ja) | Smb2スケールアウト | |
CN105511987A (zh) | 一种强一致性且高可用的分布式任务管理系统 | |
CN110830582B (zh) | 一种基于服务器集群选主方法和装置 | |
CN103064898A (zh) | 事务加锁、解锁方法及装置 | |
CN115712670A (zh) | 一种数据源管理系统 | |
CN112019387A (zh) | 一种分布式服务注册中心构建方法 | |
Dong et al. | Exploiting RDMA for distributed low-latency key/value store on non-volatile main memory |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201201 |
|
RJ01 | Rejection of invention patent application after publication |