一种基于一致性hash算法实现服务注册中心的方法技术

技术编号:37671183 阅读:12 留言:0更新日期:2023-05-26 04:32
本发明专利技术公开一种基于一致性hash算法实现服务注册中心的方法。本发明专利技术通过集群部署服务注册中心节点,采用一致性hash算法实现每个节点仅负责部分服务注册与订阅,从而实现服务数据分片存储,避免单个节点数据过载,保证系统的稳定可靠的长时间持续运行。的稳定可靠的长时间持续运行。的稳定可靠的长时间持续运行。

【技术实现步骤摘要】
一种基于一致性hash算法实现服务注册中心的方法


[0001]本专利技术涉及分布式服务管理领域,尤其涉及一种基于一致性hash算法实现服务注册中心的方法。

技术介绍

[0002]业界用于服务注册中心知名产品包括zookeeper和eureka,这两款产品能通过集群部署达到高可用,集群中节点之间通过互相同步服务数据最终达到数据一致性,因此注册中心每个节点最终全量存储服务数据。
[0003]但在大规模服务集群下,服务数据会过于庞大,zookeeper和eureka会造成单个节点数据过载问题。
[0004]因此,现有技术存在缺陷,需要改进。

技术实现思路

[0005]本专利技术要解决的技术问题是:提供一种基于一致性hash算法实现服务注册中心的方法,避免单个节点数据过载。
[0006]本专利技术的技术方案如下:提供一种基于一致性hash算法实现服务注册中心的方法,包括以下步骤。
[0007]S1:注册中心集群部署N台节点,集群中各节点通过gossip协议与集群其他节点同步各节点彼此的元数据信息;节点的元数据信息包括节点名称NODENAME、节点IP、节点通信端口、节点hash槽点、节点版本号和节点状态等信息,各节点名称应不同,其中hash槽点的计算方法是hash(NODENAME)%16384。各节点的元数据信息共同组成了集群元数据信息,每个节点各自维护一份自己视角下的集群元数据信息,集群中各节点实时检测彼此状态,实时同步各自的元数据信息,使得各节点的集群元数据信息一致。r/>[0008]S2:服务提供者向注册中心集群注册时,随机访问注册中心集群任一节点获取注册中心集群元数据信息,服务提供者根据自身服务名APPLICATION计算hash槽点,计算方法是hash(APPLICATION)%16384,并根据注册中心集群元数据信息采用一致性hash算法计算得出目标注册中心节点,通过TCP长连接的方式向目标注册中心节点注册自身的服务信息,服务信息可包括服务IP、端口、协议、服务版本号、服务hash槽点等,并且服务提供者每隔1

30s向目标注册中心节点发送心跳用于续约服务。
[0009]S3:服务消费者向注册中心集群订阅时,随机访问注册中心集群任一节点获取注册中心集群元数据信息,服务消费者根据需要订阅的服务名APPLICATION计算hash槽点,计算方法是hash(APPLICATION)%16384,并根据注册中心集群元数据信息采用一致性hash算法计算得出目标注册中心节点,通过TCP长连接的方式向目标注册中心节点订阅目标服务,并且服务消费者每隔1

30s向目标注册中心节点发送心跳用于续约订阅。
[0010]S4:注册中心节点在接受服务注册和订阅时,采用步骤S2和/或步骤S3中计算计算hash槽点的计算方法计算服务hash槽点,并校验是否属于当前节点所负责的hash槽点范
围,若不属于(服务订阅者和消费者获取的注册中心集群元数据信息过时导致),则通知服务提供者重新执行步骤S2和服务消费者重新执行步骤S3,若属于,则缓存服务提供者和订阅者信息到本地。
[0011]S5:服务消费者每隔1

30s定时从注册中心节点获取所订阅的服务信息,并更新缓存到本地,从而按需完成远程RPC服务调用。
[0012]所述基于一致性hash算法实现服务注册中心的方法,还包括:服务提供者下线时,相关的注册中心节点可感知并通知给对应的服务消费者。
[0013]所述基于一致性hash算法实现服务注册中心的方法,还包括:若注册中心集群扩容增加新的注册中心节点时,应用gossip协议在各节点之间传播新上线节点信息和状态并更新集群元数据信息,集群各节点检测到集群元数据信息变更则判断已注册服务是否归属于自己,并通知受影响的服务提供者重新执行步骤S2和服务消费者重新执行步骤S3。
[0014]所述基于一致性hash算法实现服务注册中心的方法,还包括:若注册中心集群任一节点检测到其他注册中心节点下线,则在集群中广播已下线节点信息并且注册中心集群各节点及时更新集群元数据信息;同时注册和订阅于该下线节点的服务提供者重新执行步骤S2、服务消费者重新执行步骤S3。
[0015]采用上述方案,本专利技术提供一种基于一致性hash算法实现服务注册中心的方法,集群部署服务注册中心节点,采用一致性hash算法实现每个节点仅负责部分服务注册与订阅,从而实现服务数据分片存储,避免单个节点数据过载,保证系统的稳定可靠的长时间持续运行。
附图说明
[0016]图1为本专利技术的一实施例的方法流程图。
具体实施方式
[0017]以下结合附图和具体实施例,对本专利技术进行详细说明。
[0018]请参阅图1,本实施例提供一种基于一致性hash算法实现服务注册中心的方法,包括以下步骤。
[0019]S1:注册中心集群部署N台节点,集群中各节点通过gossip协议与集群其他节点同步各节点彼此的元数据信息;节点的元数据信息包括节点名称NODENAME、节点IP、节点通信端口、节点hash槽点、节点版本号和节点状态等信息,各节点名称应不同,其中hash槽点的计算方法是hash(NODENAME)%16384。各节点的元数据信息共同组成了集群元数据信息,每个节点各自维护一份自己视角下的集群元数据信息,集群中各节点实时检测彼此状态,实时同步各自的元数据信息,使得各节点的集群元数据信息一致。
[0020]S2:服务提供者向注册中心集群注册时,随机访问注册中心集群任一节点获取注册中心集群元数据信息,服务提供者根据自身服务名APPLICATION计算hash槽点,计算方法是hash(APPLICATION)%16384,并根据注册中心集群元数据信息采用一致性hash算法计算得出目标注册中心节点,通过TCP长连接的方式向目标注册中心节点注册自身的服务信息,服务信息可包括服务IP、端口、协议、服务版本号、服务hash槽点等,并且服务提供者每隔1

30s向目标注册中心节点发送心跳用于续约服务。
[0021]S3:服务消费者向注册中心集群订阅时,随机访问注册中心集群任一节点获取注册中心集群元数据信息,服务消费者根据需要订阅的服务名APPLICATION计算hash槽点,计算方法是hash(APPLICATION)%16384,并根据注册中心集群元数据信息采用一致性hash算法计算得出目标注册中心节点,通过TCP长连接的方式向目标注册中心节点订阅目标服务,并且服务消费者每隔1

30s向目标注册中心节点发送心跳用于续约订阅。
[0022]S4:注册中心节点在接受服务注册和订阅时,采用步骤S2和/或步骤S3中计算计算hash槽点的计算方法计算服务hash槽点,并校验是否属于当前节点所负责的hash槽点范围,若不属于(服务订阅者和消费者获取的注册中心集群元数据信息过时导致),则通知服务提供者重新执行步骤本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于一致性hash算法实现服务注册中心的方法,其特征在于,包括以下步骤:S1:注册中心集群部署N台节点,集群中各节点通过gossip协议与集群其他节点同步各节点彼此的元数据信息;所述节点元数据包含有节点名称NODENAME;各节点的元数据信息共同组成了集群元数据信息,每个节点各自维护一份自己视角下的集群元数据信息,集群中各节点实时检测彼此状态,实时同步各自的元数据信息,使得各节点的集群元数据信息一致;S2:服务提供者向注册中心集群注册时,随机访问注册中心集群任一节点获取注册中心集群元数据信息,服务提供者根据自身服务名APPLICATION计算hash槽点;并根据注册中心集群元数据信息采用一致性hash算法计算得出目标注册中心节点,通过TCP长连接的方式向目标注册中心节点注册自身的服务信息,并且服务提供者每隔1

30s向目标注册中心节点发送心跳用于续约服务;S3:服务消费者向注册中心集群订阅时,随机访问注册中心集群任一节点获取注册中心集群元数据信息,服务消费者根据需要订阅的服务名APPLICATION计算hash槽点,并根据注册中心集群元数据信息采用一致性hash算法计算得出目标注册中心节点,通过TCP长连接的方式向目标注册中心节点订阅目标服务,并且服务消费者每隔1

30s向目标注册中心节点发送心跳用于续约订阅;S4:注册中心节点在接受服务注册和订阅时,采用步骤S2和/或步骤S3中计算计算hash槽点的计算方法计算服务hash槽点,并校验是否属于当前节点所负责的hash槽点范围,若不属于,则通知服务提供者重新执行步骤S2和服务消费者重新执行步骤S3,若属于,则缓存服务提供者和订阅者信息到本地;S5:服务消费者每隔1

30s定时从注册中心节点获取所订阅的服务信息,并更新缓存到本地,从而按需完成远程RPC服务调用。2.根据权利要求1所述的一种基于一致性hash算法实现服务注册中心的方法,其特征在...

【专利技术属性】
技术研发人员:林德开邹琼周双全
申请(专利权)人:深圳市瑞云科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1