一种分布式集群ID资源管理方法、系统、设备及介质技术方案

技术编号:28046184 阅读:15 留言:0更新日期:2021-04-09 23:31
本发明专利技术公开了一种分布式集群ID资源管理方法、系统、设备及介质,包括ID资源生成方法:微服务申请ID时,优先从ETCD集群的回收池中获取闲置的ID资源,如果回收池中无ID资源,可用ETCD集群中KeyValue记录的版本号生成一个新的ID资源;以及ID资源释放方法:微服务释放ID时,在ETCD集群的回收池中生成该微服务的待释放的ID的记录并返回释放成功。本发明专利技术借助ETCD集群的KeyValue操作,提出一种新的ID管理办法,实现更加丰富多样化的ID管理,生成的ID可根据用户的要求进行灵活配置,扩展性极强,且根据不同的微服务生成符合各自要求的ID,各自独立,不会互相影响。

【技术实现步骤摘要】
一种分布式集群ID资源管理方法、系统、设备及介质
本专利技术属于微服务领域,特别涉及一种分布式集群ID资源管理方法、系统、设备及介质。
技术介绍
随着单体架构向微服务的快速发展,不同微服务之间往往需要申请分布式的类似ID的资源,这些ID需要集群内全局唯一,不冲突,并且可管理,在复杂的分布式的系统中,往往需要对大量的数据和消息进行唯一标识。目前业内常用的解决方案有UUID、Snowflake、Flicker、Redis、Zookeeper和Leaf等。
技术实现思路
专利技术目的:针对现有技术中存在的问题,专利技术公开了一种分布式集群ID资源管理方法、系统、设备及介质,在ETCD集群中的微服务,借助ETCD集群简单的键值对(KeyValue)操作,提出一种新的ID生成方式和管理办法,实现更加丰富多样化的ID申请和管理。技术方案:本专利技术采用如下技术方案:一种分布式集群ID资源管理方法,其特征在于,包括ID资源生成方法:S1、接收微服务申请ID的请求,生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群的回收池中查询该微服务的ID;S2、若回收池中存在该微服务的ID,则从ETCD集群中获取该ID并返回给微服务;S3、若回收池中不存在该微服务的ID,则生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群中请求新生成一个ID,从ETCD集群中获取该KeyValue记录的递增的版本号并结合该微服务的ID的配置进行计算,得到ID并返回给微服务。优选地,微服务申请ID的请求中包括该微服务的业务模块名称;生成的KeyValue记录中包括key和value,其中key根据微服务的业务模块名称构造,value根据微服务的ID的配置进行设置,若ID没有配置,则value=0;若ID有配置,则将配置的内容转换为Json字符串格式存储到value中。优选地,步骤S2中还包括,在回收池中删除该ID。优选地,步骤S3中,生成KeyValue记录并执行该KeyValue操作之前,还包括ETCD集群返回回收池中无可用ID资源的应答;生成KeyValue记录并执行该KeyValue操作之后,ETCD集群中存储该KeyValue记录并返回Response,Response中包括该KeyValue记录的版本号。优选地,根据微服务的ID的配置得到ID范围的最大值,步骤S3中,若计算得到的ID大于该最大值,则向微服务返回ID资源已经耗尽,微服务申请ID失败。一种分布式集群ID资源管理方法,其特征在于,包括ID资源释放方法:S1、接收微服务释放ID的请求,生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群的回收池中生成该微服务的待释放的ID的记录;S2、向微服务返回释放ID成功。优选地,微服务释放ID的请求中包括该微服务的业务模块名称和该微服务的待释放的ID。一种分布式集群ID资源管理系统,其特征在于,包括在K8S环境中部署的需要管理ID的微服务、用于提供ID管理的ID资源管理模块和为ID资源管理模块管理ID提供底层支持的ETCD集群,其中:微服务:发出申请ID的请求和释放ID的请求;ID资源管理模块:接收微服务申请ID的请求,生成KeyValue记录,该KeyValue记录是在ETCD集群的回收池中查询该微服务的ID;将ETCD集群的回收池中返回的微服务的ID并返回给微服务;生成KeyValue记录,该KeyValue记录是在ETCD集群中请求新生成一个ID,将从ETCD集群中获取的该KeyValue记录的递增的版本号与该微服务的ID的配置进行计算,得到ID并返回给微服务;接收微服务释放ID的请求,生成KeyValue记录,该KeyValue记录是在ETCD集群的回收池中生成该微服务的待释放的ID的记录;向微服务返回释放ID成功;ETCD集群:执行KeyValue操作,该KeyValue操作是在ETCD集群的回收池中查询微服务的ID;从ETCD集群的回收池中该微服务的ID返回给ID资源管理模块;执行KeyValue操作,该KeyValue操作是在ETCD集群中请求新生成一个ID,将该KeyValue操作对应的KeyValue记录的递增的版本号返回给ID资源管理模块;执行KeyValue操作,该KeyValue操作是在ETCD集群的回收池中生成该微服务的待释放的ID的记录;向ID资源管理模块返回释放ID成功。优选地,在ID资源管理模块的K8S编排文件中定义ConfigMap,ConfigMap中定义了微服务的ID的配置。优选地,ID资源管理模块对外提供gRPC接口,微服务通过gRPC接口调用向ID资源管理模块申请ID和释放ID。一种分布式集群ID资源管理设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述的分布式集群ID资源管理方法。一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述的分布式集群ID资源管理方法。有益效果:本专利技术具有如下有益效果:1、本专利技术可生成1~64位的ID,申请的ID长度、ID范围、步长可以根据用户的要求进行灵活定义,部署更加灵活,配置动态化:2、本专利技术对ID的申请和管理是隔离的,根据不同的业务生成符合各自要求的ID,独立且不会互相影响;3、本专利技术借助ETCD集群工作机制,确保ETCD集群内的ID不冲突,可直接利用ETCD集群自带的同步机制,对ID进行回收、重新分配等管理;4、本专利技术中业务申请ID的规则读取后,被以Json字符串格式的Value存储,方便后续用户查看实际申请ID的详细规则和进行计算,扩展性极强,可以根据自己的需要进行携带计算字段。附图说明图1为本专利技术的系统结构示意图;图2为ETCD集群的操作原理图;图3为ID资源管理模块概要交互图;图4为回收池中无可利用的ID资源场景下的ID申请流程图;图5为释放ID资源与回收池中无可利用的ID资源场景下的ID申请流程图;图6为ETCD集群搭建后的代码示例。具体实施方式下面结合附图对本专利技术作更进一步的说明。如图1至图6所示,本专利技术公开了一种分布式集群ID资源管理方法,包括ID资源生成方法:使用ETCD集群(EtcdCluster)的KeyValue记录的版本号来生成递增式的ID,其中,ETCD集群有如表1中所述的几种版本号:表1本专利技术中选用上述KeyValue记录的版本号version来生成ID,version表示的是某个KeyValue记录中的key被修改的次数。每向ETCD集群PUT一个KeyValue本文档来自技高网...

【技术保护点】
1.一种分布式集群ID资源管理方法,其特征在于,包括ID资源生成方法:/nS1、接收微服务申请ID的请求,生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群的回收池中查询该微服务的ID;/nS2、若回收池中存在该微服务的ID,则从ETCD集群中获取该ID并返回给微服务;/nS3、若回收池中不存在该微服务的ID,则生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群中请求新生成一个ID,从ETCD集群中获取该KeyValue记录的递增的版本号并结合该微服务的ID的配置进行计算,得到ID并返回给微服务。/n

【技术特征摘要】
1.一种分布式集群ID资源管理方法,其特征在于,包括ID资源生成方法:
S1、接收微服务申请ID的请求,生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群的回收池中查询该微服务的ID;
S2、若回收池中存在该微服务的ID,则从ETCD集群中获取该ID并返回给微服务;
S3、若回收池中不存在该微服务的ID,则生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群中请求新生成一个ID,从ETCD集群中获取该KeyValue记录的递增的版本号并结合该微服务的ID的配置进行计算,得到ID并返回给微服务。


2.根据权利要求1所述的一种分布式集群ID资源管理方法,其特征在于,微服务申请ID的请求中包括该微服务的业务模块名称;
生成的KeyValue记录中包括key和value,其中key根据微服务的业务模块名称构造,value根据微服务的ID的配置进行设置,若ID没有配置,则value=0;若ID有配置,则将配置的内容转换为Json字符串格式存储到value中。


3.根据权利要求1所述的一种分布式集群ID资源管理方法,其特征在于,步骤S2中还包括,在回收池中删除该ID。


4.根据权利要求1所述的一种分布式集群ID资源管理方法,其特征在于,步骤S3中,生成KeyValue记录并执行该KeyValue操作之前,还包括ETCD集群返回回收池中无可用ID资源的应答;
生成KeyValue记录并执行该KeyValue操作之后,ETCD集群中存储该KeyValue记录并返回Response,Response中包括该KeyValue记录的版本号。


5.根据权利要求1所述的一种分布式集群ID资源管理方法,其特征在于,根据微服务的ID的配置得到ID范围的最大值,步骤S3中,若计算得到的ID大于该最大值,则向微服务返回ID资源已经耗尽,微服务申请ID失败。


6.一种分布式集群ID资源管理方法,其特征在于,包括ID资源释放方法:
S1、接收微服务释放ID的请求,生成KeyValue记录并执行该KeyValue操作,该KeyValue操作是在ETCD集群的回收池中生成该微服务的待释放的ID的记录;
S2、向微服务返回释放ID成功。


7.根据权利要求6所述的一种分布式集群ID资源管理方法,其特征在于,微服务释放ID的请求中包括该微服务的业务模块名...

【专利技术属性】
技术研发人员:高松张晨黄韬
申请(专利权)人:网络通信与安全紫金山实验室
类型:发明
国别省市:江苏;32

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

1