Nothing Special   »   [go: up one dir, main page]

CN112019387A - 一种分布式服务注册中心构建方法 - Google Patents

一种分布式服务注册中心构建方法 Download PDF

Info

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
Application number
CN202010910847.9A
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.)
Shanghai Zhuo Steel Chain Technology Co ltd
Original Assignee
Shanghai Zhuo Steel Chain Technology 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 Shanghai Zhuo Steel Chain Technology Co ltd filed Critical Shanghai Zhuo Steel Chain Technology Co ltd
Priority to CN202010910847.9A priority Critical patent/CN112019387A/zh
Publication of CN112019387A publication Critical patent/CN112019387A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • 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/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery 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日志算法。
CN202010910847.9A 2020-09-02 2020-09-02 一种分布式服务注册中心构建方法 Pending CN112019387A (zh)

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)

* Cited by examiner, † Cited by third party
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 中国人民解放军国防科技大学 一种微服务架构下的服务请求处理方法、系统及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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