CN112637380A - 一种分布式集群id资源管理方法、系统、设备及介质 - Google Patents
一种分布式集群id资源管理方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN112637380A CN112637380A CN202011624128.7A CN202011624128A CN112637380A CN 112637380 A CN112637380 A CN 112637380A CN 202011624128 A CN202011624128 A CN 202011624128A CN 112637380 A CN112637380 A CN 112637380A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- keyvalue
- record
- cluster
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 claims abstract description 18
- 238000004064 recycling Methods 0.000 claims abstract description 16
- 238000011084 recovery Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 241000533950 Leucojum Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3005—Mechanisms for avoiding name conflicts
-
- 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
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式集群ID资源管理方法、系统、设备及介质,包括ID资源生成方法:微服务申请ID时,优先从ETCD集群的回收池中获取闲置的ID资源,如果回收池中无ID资源,可用ETCD集群中KeyValue记录的版本号生成一个新的ID资源;以及ID资源释放方法:微服务释放ID时,在ETCD集群的回收池中生成该微服务的待释放的ID的记录并返回释放成功。本发明借助ETCD集群的KeyValue操作,提出一种新的ID管理办法,实现更加丰富多样化的ID管理,生成的ID可根据用户的要求进行灵活配置,扩展性极强,且根据不同的微服务生成符合各自要求的ID,各自独立,不会互相影响。
Description
技术领域
本发明属于微服务领域,特别涉及一种分布式集群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集群(Etcd Cluster)的KeyValue记录的版本号来生成递增式的ID,其中,ETCD集群有如表1中所述的几种版本号:
表1
本发明中选用上述KeyValue记录的版本号version来生成ID,version表示的是某个KeyValue记录中的key被修改的次数。每向ETCD集群PUT一个KeyValue记录就修改一次对应的key,ETCD集群就返回一个对应的version来计算新的ID,因为KeyValue记录是不会删除的,所以不考虑删除对version的影响。version字段的定义如下所示:
// version is the version of the key. A deletion resets
// the version to zero and any modification of the key
// increases its version.
message KeyValue {
// key is the key in bytes. An empty key is not allowed.
bytes key = 1;
// create_revision is the revision of last creation on this key.
int64 create_revision = 2;
// mod_revision is the revision of last modification on this key.
int64 mod_revision = 3;
// version is the version of the key. A deletion resets
// the version to zero and any modification of the key
// increases its version.
int64 version = 4;
// value is the value held by the key, in bytes.
bytes value = 5;
// lease is the ID of the lease that attached to key.
// When the attached lease expires, the key will be deleted.
// If lease is 0, then no lease is attached to the key.
int64 lease = 6;
}
本发明所述的一种分布式集群ID资源管理方法中的ID资源生成方法,具体包括如下步骤:
步骤S1、搭建K8S环境,在K8S环境中部署需要申请ID的微服务、用于提供ID管理的ID资源管理模块和为ID资源管理模块管理ID提供底层支持的ETCD集群。
如图1所示,K8S环境中部署了tenant、topo、path、route这几个微服务,这些微服务都会用到申请ID的场景;Idresources是提供ID资源管理(申请、释放、回收)的微服务,即ID资源管理模块;ETCD集群为Idresource的管理ID提供底层的支持。ETCD集群搭建后的代码示例如图6。
ConfigMap是K8S环境的一个API对象,其中根据实际需求灵活定义了各个微服务器所需申请ID的配置,包括ID长度和ID范围,部署更加灵活,配置动态化。若需申请的ID的某个配置没有限制,则不在ConfigMap中定义。ConfigMap的代码定义如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: idresource
namespace: default
data:
# 类文件键
idresource.json: |
{
……
"tenant":{ #申请ID资源的微服务名称,tenant需要申请
"ModuleName": "VPNID", #申请给哪个微服务使用,进行ID隔离
"range_start": "1", #申请的范围起始
"range_end": "2000", #申请的范围上限
"id_len":32 #长度
},
"path":{ #申请ID资源的微服务名称,path需要申请
"ModuleName": "PATHID", #申请给哪个微服务使用,进行ID隔离
"range_start": "1", #申请的范围起始
"range_end": "2000", #申请的范围上限
"id_len":32 #长度
},
}
其中:ModuleName表示微服务的业务模块名称,range_start表示需申请ID的起始值,range_end表示需申请ID的上限值,id_len表示需申请ID的长度,为1~64位。最终生成的ID范围为range_min~range_max,其中:若只限制了range_start或range_end,则range_min=range_start,或range_max =range_end;若只限制了id_len,则range_min=MinIntid_len,range_max =MaxIntid_len,MinIntid_len表示长度为id_len的ID的最小值,MaxIntid_len表示长度为id_len的ID的最大值;若限制了range_start、range_end和id_len,则range_min= max{range_start,MinIntid_len},range_max= min{range_end,MaxIntid_len}。上述ConfigMap的定义,集成到ID资源管理模块的编排文件中,部署ID资源管理模块的控制器完成后,会创建生成ConfigMap资源,代码示例如下:
configmap/Idresource created
步骤S2、微服务向ID资源管理模块发送申请ID的请求,该请求中携带微服务的ModuleName。ID资源管理模块对外提供gRPC接口,微服务通过gRPC接口调用向ID资源管理模块申请ID。
微服务tenant、topo、path、route携带业务模块名称发送给Idresource,进行ID申请和管理,比如微服务path申请一个ID给PATHID使用,可以把ModuleName =“PATHID”字符串携带给Idresource;这里的Idresouce对外提供gRPC接口,微服务tenant、topo、path、route通过gRPC调用去向Idresouce申请ID资源。
步骤S3、ID资源管理模块收到微服务发来的申请ID请求,根据其ModuleName生成ETCD集群的KeyValue记录,操作ETCD集群,ID资源管理模块获取ETCD存储的回收池中的一个ID,或者新生成一个version并结合返回的version和微服务的ID的配置完成ID的计算,将ID返回给微服务。
其中,KeyValue记录中包括key和value,各个微服务的KeyValue记录中的key格式没有固定的要求,只要能保证微服务之间不重复即可,因此不同微服务的ID之间通过key来进行隔离。本发明中,ID资源管理模块根据各个微服务的ModuleName去构造对应的key,从而生成符合各个微服务要求的ID ,key的格式上采用目录分层的方式,即采用“/”划分目录。例如:微服务tenant已经申请了100个ID(1~100),对微服务tenant而言,下次申请的ID是101;假定微服务path如果也申请ID,不会在微服务tenant的基础上申请,而是从自己的设定的起始值申请第一个ID,假设起始值为1,也就是会从1开始申请,而不是101;微服务tenant的ID和微服务path的ID的申请,是独立的,不会互相影响,实现原理是根据微服务tenant和微服务path的ModuleName进行了区分维护。
例如,ModuleName为PATHID的微服务path向ID资源管理模块发送申请ID请求,ID资源管理模块收到这个申请ID请求,就组装一个key,即“/keys/id_malloc/PATHID”。
各个微服务的KeyValue记录中的value根据ConfigMap中所需申请的ID的配置进行设置:如果没有配置限制,则value=0即可;如果有配置限制,则将配置从ConfigMap中读取,之后将其定义的内容转换为Json字符串格式存储到value中,方便后续用户查看实际申请ID的详细规则和进行计算,可满足多场景,扩展性极强,可以根据自己的需要进行携带计算字段充分利用了数据库的功能,做到“小功能,大扩展”。
如下表2所示,列出了本发明中各个ID操作场景下的KeyValue记录:
表2
代码示例如下:
/keys/id_malloc/PATH_GROUP_ID
0
/keys/id_malloc/PATH_ID
0
/keys/id_malloc/PROBE
0
/keys/id_malloc/SR_SID
0
/keys/id_malloc/DHCP
{“range_start”:1, “range_end”:2000, “id_len”:32}
其中:ModuleName分别为PATH_GROUP_ID、PATH_ID、PROBE和SR_SID的微服务请求ETCD集群新生成一个无配置限制的ID,业务模块名称为DHCP的微服务请求ETCD集群新生成一个有配置限制的ID,起始值为1,上限值为2000,长度为32位。
步骤S31、ID资源管理模块构造KeyValue记录向ETCD集群中的回收池查询是否有申请ID的微服务可用的ID,例如,ID资源管理模块Get_Prefix一个KeyValue记录{/keys/id_recycle/PATHID/}到ETCD集群中,在ETCD集群的回收池中查询是否有ModuleName为PATHID的微服务path可使用的ID,若有,则执行步骤S32,若无,则执行步骤S33。
步骤S32、若回收池中有微服务可使用的ID,则ETCD集群将该ID返回给ID资源管理模块,同时在回收池中删除该ID;而后ID资源管理模块将该ID发送给微服务。
例如,回收池中根据/keys/id_recycle/ PATHID /38去表示回收池中有一个ID=38可以给微服务path使用,则ETCD集群将ID=38返回给ID资源管理模块,同时Delete一个KeyValue记录{/keys/id_recycle/ PATHID /38}表示从回收池中删除ID=38的记录;之后ID资源管理模块将ID=38发送给微服务path。
步骤S33、若回收池中没有微服务可使用的ID,则ETCD集群向ID资源管理模块返回回收池中无可用ID资源的应答,之后ID资源管理模块再构造KeyValue记录向ETCD集群请求新生成一个ID,ETCD集群向ID资源管理模块返回Response,Response中包括该KeyValue记录的version,ID资源管理模块根据返回的version和ConfigMap中该微服务的ID的配置进行计算,得到最终的ID并发送给微服务。
例如,ID资源管理模块PUT一个KeyValue记录{/keys/id_recycle/ PATHID,0}到ETCD集群中,Put成功后,ETCD集群中会存储这个KeyValue记录,并且返回一个Response给ID资源管理模块。
不同的ETCD操作对应不同的Response响应格式,代码定义如下:
type (
CompactResponse pb.CompactionResponse
PutResponse pb.PutResponse
GetResponse pb.RangeResponse
DeleteResponse pb.DeleteRangeResponse
TxnResponse pb.TxnResponse
)
其中,这里ETCD集群返回的PutResponse结构如下所示,PutResponse结构的“KeyValue”中有本key的被修改的次数即版本号version,该数据是每修改一次,递增一次:
type PutResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header"json:"header,omitempty"`
// if prev_kv is set in the request, the previous key-valuepair will be returned.
PrevKv *mvccpb.KeyValue `protobuf:"bytes,2,opt,name=prev_kv,json=prevKv" json:"prev_kv,omitempty"`
}
ID资源管理模块收到ETCD集群的Response后,提取其中的version,然后根据ConfigMap中该微服务的ID的配置进行计算:
若ConfigMap中未限制该微服务的ID的配置,则申请的ID为:ID=version;
若ConfigMap中限制了该微服务的ID的配置,根据其配置可得到ID的范围:range_min~range_max,若range_start+version-1小于或等于range_max,则申请的ID为ID=range_start+version-1,ID资源管理模块将该ID返回微服务;若range_start+version-1大于range_max,则ID资源已经耗尽,申请失败,ID资源管理模块将该结果返回微服务。
本发明公开了一种分布式集群ID资源管理方法,包括ID资源释放方法,包括如下步骤:
步骤S1、搭建K8S环境,在K8S环境中部署需要申请ID的微服务、用于提供ID管理的ID资源管理模块和为ID资源管理模块管理ID提供底层支持的ETCD集群。
步骤S2、微服务向ID资源管理模块发送释放ID请求,该请求中携带微服务的ModuleName和需释放的ID。例如,微服务path释放一个2345的ID时,传递一个ModuleName =“PATHID”和ID=2345给ID资源管理模块。以此用于对上述ID资源生成方法生成的ID进行释放。
微服务通过gRPC接口调用向ID资源管理模块申请释放ID。
步骤S3、ID资源管理模块收到微服务发来的释放ID请求,结合ConfigMap中该微服务的ID的配置,PUT一个KeyValue记录到ETCD集群中,在回收池中生成记录。例如,ID资源管理模块PUT一个KeyValue记录{/keys/id_recycle/PATHID/2345,0}到ETCD集群中,从而在回收池中生成一个/keys/id_recycle/PATHID/2345,而不需要将ID=2345转换成对应的version。
步骤S4、ETCD集群向ID资源管理模块返回释放成功,ID资源管理模块向微服务返回释放成功。
发明公开了一种利用ETCD版本号机制多样化的分布式集群ID资源生成设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述分布式集群ID资源管理方法。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述分布式集群ID资源管理方法。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
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的请求中包括该微服务的业务模块名称和该微服务的待释放的ID。
8.一种分布式集群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成功。
9.根据权利要求8所述的一种分布式集群ID资源管理系统,其特征在于,在ID资源管理模块的K8S编排文件中定义ConfigMap,ConfigMap中定义了微服务的ID的配置。
10.根据权利要求8所述的一种分布式集群ID资源管理系统,其特征在于,ID资源管理模块对外提供gRPC接口,微服务通过gRPC接口调用向ID资源管理模块申请ID和释放ID。
11.一种分布式集群ID资源管理设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-7所述的分布式集群ID资源管理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述权利要求1-7所述的分布式集群ID资源管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624128.7A CN112637380B (zh) | 2020-12-31 | 2020-12-31 | 一种分布式集群id资源管理方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624128.7A CN112637380B (zh) | 2020-12-31 | 2020-12-31 | 一种分布式集群id资源管理方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637380A true CN112637380A (zh) | 2021-04-09 |
CN112637380B CN112637380B (zh) | 2022-09-06 |
Family
ID=75289685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011624128.7A Active CN112637380B (zh) | 2020-12-31 | 2020-12-31 | 一种分布式集群id资源管理方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637380B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363333A (zh) * | 2021-12-29 | 2022-04-15 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
CN114827082A (zh) * | 2022-06-29 | 2022-07-29 | 广州市玄武无线科技股份有限公司 | 分布式系统全局唯一id生成方法、系统、设备及介质 |
CN115687367A (zh) * | 2023-01-04 | 2023-02-03 | 成都精灵云科技有限公司 | 基于etcd键值版本号的id生成方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
US10212041B1 (en) * | 2016-03-04 | 2019-02-19 | Avi Networks | Traffic pattern detection and presentation in container-based cloud computing architecture |
CN109800083A (zh) * | 2018-12-18 | 2019-05-24 | 平安科技(深圳)有限公司 | 一种微服务协同调用的方法、装置、系统及存储介质 |
CN110661662A (zh) * | 2019-09-26 | 2020-01-07 | 北京北信源软件股份有限公司 | 一种轻量级的微服务配置方法 |
CN111708775A (zh) * | 2020-05-21 | 2020-09-25 | 四川虹美智能科技有限公司 | 自增id生成方法、装置及系统 |
-
2020
- 2020-12-31 CN CN202011624128.7A patent/CN112637380B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10212041B1 (en) * | 2016-03-04 | 2019-02-19 | Avi Networks | Traffic pattern detection and presentation in container-based cloud computing architecture |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN109800083A (zh) * | 2018-12-18 | 2019-05-24 | 平安科技(深圳)有限公司 | 一种微服务协同调用的方法、装置、系统及存储介质 |
CN110661662A (zh) * | 2019-09-26 | 2020-01-07 | 北京北信源软件股份有限公司 | 一种轻量级的微服务配置方法 |
CN111708775A (zh) * | 2020-05-21 | 2020-09-25 | 四川虹美智能科技有限公司 | 自增id生成方法、装置及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363333A (zh) * | 2021-12-29 | 2022-04-15 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
CN114363333B (zh) * | 2021-12-29 | 2023-11-28 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
CN114827082A (zh) * | 2022-06-29 | 2022-07-29 | 广州市玄武无线科技股份有限公司 | 分布式系统全局唯一id生成方法、系统、设备及介质 |
CN115687367A (zh) * | 2023-01-04 | 2023-02-03 | 成都精灵云科技有限公司 | 基于etcd键值版本号的id生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112637380B (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637380B (zh) | 一种分布式集群id资源管理方法、系统、设备及介质 | |
US20210218778A1 (en) | Method for providing wireless application privilege management | |
CN109391664A (zh) | 用于多集群容器部署的系统和方法 | |
US7237235B2 (en) | Application distribution system, and distribution server and distribution method thereof | |
KR101389101B1 (ko) | 디바이스 관리 데이터 변경들을 추적하기 위한 방법 및 장치 | |
KR970701465A (ko) | 데이터 기억장치(a data storage device) | |
CN106648903A (zh) | 调用分布式文件系统的方法和装置 | |
CN113722323A (zh) | 业务序列号生成方法、发号器组件、设备和存储介质 | |
US8387068B2 (en) | Method and device for managing object instance label | |
US20030220125A1 (en) | Transmission-side mobile unit, reception-side mobile unit, information communication system, information communication method, and server apparatus | |
US7464081B2 (en) | Web based dynamic data translation service and method | |
CN115599302A (zh) | 一种数据写入方法、装置、设备及存储介质 | |
CN109829330A (zh) | 一种svn权限设置方法、装置、系统、电子设备 | |
CN108804711A (zh) | 一种数据处理的方法、装置和计算机可读存储介质 | |
US7603426B2 (en) | Flexible context management for enumeration sessions using context exchange | |
JP3916219B2 (ja) | リンク先圧縮システム | |
CN112685102A (zh) | 一种网关插件热加载方法、装置、设备及介质 | |
JP5672893B2 (ja) | シンクライアントシステム、管理サーバ、クライアント環境管理方法及びプログラム | |
JPH11120148A (ja) | 非同期通信装置およびシステム | |
CN112596752B (zh) | 一种电子取证设备物联化方法及系统 | |
CN118092982B (zh) | 一种云原生应用的多集群运维方法、设备及介质 | |
CN115604345B (zh) | 应用程序的开发方法及计算机可读存储介质 | |
CN114172804B (zh) | 一种联盟链分离部署方法、系统、介质和电子设备 | |
CN110909002B (zh) | 一种智能设备动态属性的存储方法及网关 | |
CN118300788A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |