CN112637380B - 一种分布式集群id资源管理方法、系统、设备及介质 - Google Patents

一种分布式集群id资源管理方法、系统、设备及介质 Download PDF

Info

Publication number
CN112637380B
CN112637380B CN202011624128.7A CN202011624128A CN112637380B CN 112637380 B CN112637380 B CN 112637380B CN 202011624128 A CN202011624128 A CN 202011624128A CN 112637380 B CN112637380 B CN 112637380B
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.)
Active
Application number
CN202011624128.7A
Other languages
English (en)
Other versions
CN112637380A (zh
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.)
Network Communication and Security Zijinshan Laboratory
Original Assignee
Network Communication and Security Zijinshan Laboratory
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 Network Communication and Security Zijinshan Laboratory filed Critical Network Communication and Security Zijinshan Laboratory
Priority to CN202011624128.7A priority Critical patent/CN112637380B/zh
Publication of CN112637380A publication Critical patent/CN112637380A/zh
Application granted granted Critical
Publication of CN112637380B publication Critical patent/CN112637380B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3005Mechanisms for avoiding name conflicts
    • 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
    • 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)
  • 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的资源,这些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
Figure DEST_PATH_IMAGE002
本发明中选用上述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
Figure DEST_PATH_IMAGE004
代码示例如下:
/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-value pair willbe 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 (11)

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的记录;所述微服务释放ID的请求中包括该微服务的业务模块名称和该微服务的待释放的ID;
S2、向微服务返回释放ID成功。
7.一种分布式集群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成功。
8.根据权利要求7所述的一种分布式集群ID资源管理系统,其特征在于,在ID资源管理模块的K8S编排文件中定义ConfigMap,ConfigMap中定义了微服务的ID的配置。
9.根据权利要求7所述的一种分布式集群ID资源管理系统,其特征在于,ID资源管理模块对外提供gRPC接口,微服务通过gRPC接口调用向ID资源管理模块申请ID和释放ID。
10.一种分布式集群ID资源管理设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-6任一所述的分布式集群ID资源管理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述权利要求1-6任一所述的分布式集群ID资源管理方法。
CN202011624128.7A 2020-12-31 2020-12-31 一种分布式集群id资源管理方法、系统、设备及介质 Active CN112637380B (zh)

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 CN112637380A (zh) 2021-04-09
CN112637380B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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生成方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
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生成方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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生成方法、装置及系统

Also Published As

Publication number Publication date
CN112637380A (zh) 2021-04-09

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
KR970701465A (ko) 데이터 기억장치(a data storage device)
KR101389101B1 (ko) 디바이스 관리 데이터 변경들을 추적하기 위한 방법 및 장치
JPH117405A (ja) ファイル共有システム
US20090172183A1 (en) Management of networked resources on different platforms with a common interface
US8387068B2 (en) Method and device for managing object instance label
JP3756407B2 (ja) ユーザ定義データ型のデータ項目を扱うための方法
US7107272B1 (en) Independent distributed metadata system and method
CN109829330A (zh) 一种svn权限设置方法、装置、系统、电子设备
WO2003060712A2 (en) Method and system of accessing shared resources using configurable management information bases
CN106254411B (zh) 用于提供服务的系统、服务器系统及方法
CN108804711A (zh) 一种数据处理的方法、装置和计算机可读存储介质
US7603426B2 (en) Flexible context management for enumeration sessions using context exchange
CN115174529B (zh) 一种网络处理方法、装置、电子设备及存储介质
CN109947739A (zh) 数据源管理方法及装置
Cisco Cisco Network Order Manager Introduction
US7493628B2 (en) Shared common connection factory
JP5672893B2 (ja) シンクライアントシステム、管理サーバ、クライアント環境管理方法及びプログラム
JP2003288288A (ja) リンク先圧縮システム
JPH11120148A (ja) 非同期通信装置およびシステム
CN112596752B (zh) 一种电子取证设备物联化方法及系统
CN114448979B (zh) 一种基于dds的发布订阅动态绑定通信系统

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