CN113204441B - 一种多应用id生成方法及系统 - Google Patents

一种多应用id生成方法及系统 Download PDF

Info

Publication number
CN113204441B
CN113204441B CN202110497011.5A CN202110497011A CN113204441B CN 113204441 B CN113204441 B CN 113204441B CN 202110497011 A CN202110497011 A CN 202110497011A CN 113204441 B CN113204441 B CN 113204441B
Authority
CN
China
Prior art keywords
redis
information
application
layer
service
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
CN202110497011.5A
Other languages
English (en)
Other versions
CN113204441A (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.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information 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 Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202110497011.5A priority Critical patent/CN113204441B/zh
Publication of CN113204441A publication Critical patent/CN113204441A/zh
Application granted granted Critical
Publication of CN113204441B publication Critical patent/CN113204441B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种多应用ID生成方法及系统,所述系统包括:ID服务层、ID分发层、数据持久层;所述ID服务层由多个IDGen服务构成,用于根据ID信息和Redis信息为第三方应用程序提供基于RPC的ID申请;所述ID分发层由多个Redis服务器构成,用于ID的生成,Redis服务器与ID名称建立多对一关系;所述数据持久层由数据库或者文件构成,用于存放ID信息和Redis信息。本发明解决了现有的ID生成方法无法实现分布式多应用环境下的全局唯一性的问题。

Description

一种多应用ID生成方法及系统
技术领域
本发明属于分布式系统管理方法技术领域,尤其涉及一种多应用ID生成方法及系统。
背景技术
目前现有ID的生产方案主要有基于数据库自增的ID生成方法、基于UUID的ID生成方法、基于Redis的ID生成方法。基于数据库自增的ID生成方法利用数据库自增ID来实现,具备简单、有序、全库唯一的优点,但可扩展性和健壮性不强,同时无法做到分布式环境下的全局唯一。基于UUID的ID生成方法让分散式系统中所有的元素都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的制定;算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成UUID;其缺点是随机性强、不连续、不单调(不能递增或者递减)。传统基于Redis的ID生成方法通过分布式Redis实现ID的生成,提升了ID生成效率,但针对多应用缺乏统一的规划和管理,比较混乱,无法实现全局唯一性。
随着云计算的快速发展,越来越多的应用采用基于云平台的架构。通常在企业内部云中,集成多种企业应用,每种企业应用需要使用不同的全局唯一数字ID。通常全局唯一数字ID缺乏统一的规划和管理,容易造成ID使用混乱。
发明内容
本发明针对现有的ID生成方法无法实现分布式多应用环境下的全局唯一性的问题,提出一种多应用ID生成方法及系统。
为了实现上述目的,本发明采用以下技术方案:
一种多应用ID生成系统,包括:ID服务层、ID分发层、数据持久层;
所述ID服务层由多个IDGen服务构成,用于根据ID信息和Redis信息为第三方应用程序提供基于RPC的ID申请;所述ID信息包括项目名称、ID名称、ID被分配的Redis标识;所述Redis信息包括Redis标识、Redis服务器IP、Redis服务器端口、Redis密码;所述ID分发层由多个Redis服务器构成,用于ID的生成,所述Redis服务器与ID名称建立多对一关系;
所述数据持久层由数据库或者文件构成,用于存放ID信息和Redis信息。
进一步地,所述数据持久层还用于存放ID的状态信息,所述ID的状态信息为有效或无效。
进一步地,所述ID服务层只能访问ID的状态信息为有效的ID信息。
一种多应用ID生成方法,包括:
步骤1:数据持久层建立多种应用的ID信息和Redis信息;
步骤2:ID服务层访问数据持久层,获取Redis信息,枚举并访问Redis信息,如果Redis服务无法访问,则依据Redis信息,启动Redis服务;
步骤3:ID服务层内多个IDGen服务建立互斥机制,从数据持久层加载ID信息,枚举ID信息,依据ID信息连接到Redis服务器上,如果Redis服务器上所述ID信息不存在,则在Redis服务器上建立对应ID信息;
步骤4:第三方应用程序通过RPC调用ID服务层的任一IDGen服务申请ID。
进一步地,所述Redis服务器开启持久化功能,用于保存最新的ID信息。
进一步地,所述步骤4包括:
第三方应用程序调用RPC接口申请ID,包括ID名称申请;
ID服务层的任一IDGen服务根据ID名称查询ID所在的Redis服务器;
Redis服务器据ID名称调用incr命令,生成新的ID ;
IDGen服务将从Redis服务器获取的新的ID返回给第三方应用程序。
进一步地,所述Redis服务器生成新的ID时采用动态扩展的方式增加ID范围。
与现有技术相比,本发明具有的有益效果:
现有ID通常采用数据库、UUID、Redis等方式来生成,无法实现分布式多应用环境下的全局唯一性。本发明针对云平台运行环境,通过构建ID服务层、ID分发层、数据持久层,对应用ID和Redis服务器进行统一的规划和管理,为多应用提供了统一的全局唯一数字ID,采用分布式架构实现了应用ID的快速生成和查找,通过应用ID与Redis的动态绑定实现了资源的弹性、可扩展。
附图说明
图1为本发明实施例一种多应用ID生成系统的架构图;
图2为本发明实施例一种多应用ID生成方法的基本流程图;
图3为本发明实施例另一种多应用ID生成方法的基本流程图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
如图1所示,一种多应用ID生成系统,包括:ID服务层、ID分发层、数据持久层;
所述ID服务层由多个IDGen服务构成,用于根据ID信息和Redis信息为第三方应用程序提供基于RPC的ID申请;所述ID信息包括项目名称、ID名称、ID被分配的Redis标识;所述Redis信息包括Redis标识、Redis服务器IP、Redis服务器端口、Redis密码;
所述ID分发层由多个Redis服务器构成,用于ID的生成, Redis服务器与ID名称建立多对一关系,即一种ID只对应一个Redis服务器,一个Redis服务器对应多种ID;值得说明的是,ID名称可以理解为ID类型名称,一般一个项目(应用)中申请的ID为同一种类型,即申请的ID名称相同;
所述数据持久层由数据库或者文件构成,用于存放ID信息和Redis信息,其中ID信息包括项目名称、ID名称、ID被分配的Redis标识,其中Redis信息包括Redis标识、Redis服务器IP、Redis服务器端口、Redis密码。
进一步地,所述ID的状态信息为有效或无效。
进一步地,所述ID服务层只能访问ID的状态信息为有效的ID信息。
在上述实施例的基础上,如图2所示,本发明还公开一种多应用ID生成方法,包括:
步骤S101:数据持久层建立多种应用的ID信息和Redis信息;
步骤S102:ID服务层访问数据持久层,获取Redis信息,枚举并访问Redis信息,如果Redis服务无法访问,则依据Redis信息,启动Redis服务;
步骤S103:ID服务层内多个IDGen服务建立互斥机制,从数据持久层加载ID信息,枚举ID信息,依据ID信息连接到Redis服务器上,如果Redis服务器上所述ID信息不存在,则在Redis服务器上建立对应ID信息;
步骤S104:第三方应用程序通过RPC调用ID服务层的任一IDGen服务申请ID。
进一步地,所述Redis服务器开启持久化功能,用于保存最新的ID信息。
进一步地,所述步骤S104包括:
第三方应用程序调用RPC接口申请ID,包括ID名称申请;
ID服务层的任一IDGen服务根据ID名称查询ID所在的Redis服务器;
Redis服务器据ID名称调用incr命令,生成新的ID ;
IDGen服务将从Redis服务器获取的新的ID返回给第三方应用程序。
进一步地,所述Redis服务器生成新的ID时采用动态扩展的方式增加ID范围。
作为一种可实施方式,当数据持久层为Mysql数据库时,如图3所示,本发明的另一种多应用ID生成方法,包括:
步骤S201:Mysql数据库建立ID信息表和Redis信息表;所述Redis信息表包含Redis标识、Redis服务器IP、Redis服务器端口、Redis密码;所述ID信息表包含项目名称、ID名称、ID被分配的Redis标识、ID状态。
步骤S202:分别录入Redis信息和ID信息。
步骤S203:IDGen查询Mysql数据库的Redis信息,并枚举Redis信息,依据Redis服务器IP、Redis服务器端口、Redis密码,连接Redis服务器;如果连接不成功,则依据Redis服务器IP、Redis服务器端口、Redis密码启动Redis服务。
步骤S204、IDGen查询数据库的ID信息表,并枚举ID信息,依据枚举的ID信息连接到Redis服务器上;如果查询不到,则在该Redis服务器上建立该ID信息。
步骤S205:应用app调用RPC接口申请ID,ID申请包含项目信息、ID名称等信息。
步骤S206:IDGen根据ID名称查询ID所在的Redis服务器,连接Redis服务器,并申请ID。
步骤S207:Redis服务器依据ID名称调用incr命令,生成新的ID;如果新的ID数目超过设置的阈值,则启动ID更新,动态扩展ID范围。
步骤S208:IDGen将从Redis获取的新的ID,返回给应用app。
综上,现有ID通常采用数据库、UUID、Redis等方式来生成,无法实现分布式多应用环境下的全局唯一性。本发明针对云平台运行环境,通过构建ID服务层、ID分发层、数据持久层,对应用ID和Redis服务器进行统一的规划和管理,为多应用提供了统一的全局唯一数字ID,采用分布式架构实现了应用ID的快速生成和查找,通过应用ID与Redis的动态绑定实现了资源的弹性、可扩展。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种多应用ID生成系统的多应用ID生成方法,其特征在于,
所述多应用ID生成系统包括:ID服务层、ID分发层、数据持久层;
所述ID服务层由多个IDGen服务构成,用于根据ID信息和Redis信息为第三方应用程序提供基于RPC的ID申请;所述ID信息包括项目名称、ID名称、ID被分配的Redis标识;所述Redis信息包括Redis标识、Redis服务器IP、Redis服务器端口、Redis密码;
所述ID分发层由多个Redis服务器构成,用于ID的生成,所述Redis服务器与ID名称建立多对一关系;
所述数据持久层由数据库或者文件构成,用于存放ID信息和Redis信息;
所述多应用ID生成方法,其执行以下步骤:
步骤1:数据持久层建立多种应用的ID信息和Redis信息;
步骤2:ID服务层访问数据持久层,获取Redis信息,枚举并访问Redis信息,如果Redis服务无法访问,则依据Redis信息,启动Redis服务;
步骤3:ID服务层内多个IDGen服务建立互斥机制,从数据持久层加载ID信息,枚举ID信息,依据ID信息连接到Redis服务器上,如果Redis服务器上所述ID信息不存在,则在Redis服务器上建立对应ID信息;
步骤4:第三方应用程序通过RPC调用ID服务层的任一IDGen服务申请ID。
2.根据权利要求1所述的一种多应用ID生成方法,其特征在于,所述数据持久层还用于存放ID的状态信息,所述ID的状态信息为有效或无效。
3.根据权利要求2所述的一种多应用ID生成方法,其特征在于,所述ID服务层只能访问ID的状态信息为有效的ID信息。
4.根据权利要求3所述的一种多应用ID生成方法,其特征在于,所述Redis服务器开启持久化功能,用于保存最新的ID信息。
5.根据权利要求1所述的一种多应用ID生成方法,其特征在于,所述步骤4包括:
第三方应用程序调用RPC接口申请ID,包括ID名称申请;
ID服务层的任一IDGen服务根据ID名称查询ID所在的Redis服务器;
Redis服务器据ID名称调用incr命令,生成新的ID ;
IDGen服务将从Redis服务器获取的新的ID返回给第三方应用程序。
6.根据权利要求5所述的一种多应用ID生成方法,其特征在于,所述Redis服务器生成新的ID时采用动态扩展的方式增加ID范围。
CN202110497011.5A 2021-05-07 2021-05-07 一种多应用id生成方法及系统 Active CN113204441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110497011.5A CN113204441B (zh) 2021-05-07 2021-05-07 一种多应用id生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110497011.5A CN113204441B (zh) 2021-05-07 2021-05-07 一种多应用id生成方法及系统

Publications (2)

Publication Number Publication Date
CN113204441A CN113204441A (zh) 2021-08-03
CN113204441B true CN113204441B (zh) 2022-04-05

Family

ID=77029585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110497011.5A Active CN113204441B (zh) 2021-05-07 2021-05-07 一种多应用id生成方法及系统

Country Status (1)

Country Link
CN (1) CN113204441B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165216A (zh) * 2018-08-02 2019-01-08 杭州启博科技有限公司 一种Redis分布式数据库主键id的生成方法及系统、存储介质
CN109639775A (zh) * 2018-11-27 2019-04-16 湖南蚁为软件有限公司 全局单调递增id生成方法、装置、系统及设备
WO2019169696A1 (zh) * 2018-03-08 2019-09-12 平安科技(深圳)有限公司 平台客户数据回流方法、电子装置、设备及存储介质
CN111651459A (zh) * 2020-06-08 2020-09-11 北京首汽智行科技有限公司 一种基于Redis的业务ID生成方法
CN111708775A (zh) * 2020-05-21 2020-09-25 四川虹美智能科技有限公司 自增id生成方法、装置及系统
CN112328598A (zh) * 2020-11-09 2021-02-05 北京达佳互联信息技术有限公司 Id生成方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019169696A1 (zh) * 2018-03-08 2019-09-12 平安科技(深圳)有限公司 平台客户数据回流方法、电子装置、设备及存储介质
CN109165216A (zh) * 2018-08-02 2019-01-08 杭州启博科技有限公司 一种Redis分布式数据库主键id的生成方法及系统、存储介质
CN109639775A (zh) * 2018-11-27 2019-04-16 湖南蚁为软件有限公司 全局单调递增id生成方法、装置、系统及设备
CN111708775A (zh) * 2020-05-21 2020-09-25 四川虹美智能科技有限公司 自增id生成方法、装置及系统
CN111651459A (zh) * 2020-06-08 2020-09-11 北京首汽智行科技有限公司 一种基于Redis的业务ID生成方法
CN112328598A (zh) * 2020-11-09 2021-02-05 北京达佳互联信息技术有限公司 Id生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113204441A (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
CN102982141B (zh) 一种实现分布式数据库代理的方法及装置
CN111934918A (zh) 对同一容器集群内的容器实例的网络隔离方法和装置
CN111857873A (zh) 一种实现云原生容器网络的方法
CN110008665B (zh) 一种区块链的权限控制方法及装置
CN111767144B (zh) 交易数据的交易路由确定方法、装置、设备及系统
CN112468525B (zh) 一种基于区块链的域名管理系统
CN111385370B (zh) Id分配方法、装置、存储介质及id分配系统
US20100332532A1 (en) Distributed directory environment using clustered ldap servers
CN105045762A (zh) 一种配置文件的管理方法及装置
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN111064786B (zh) 账户标识管理方法及设备
CN104104582A (zh) 一种数据存储路径管理方法、客户端及服务器
CN113407560B (zh) 更新消息处理方法、数据同步方法、配置信息配置方法
US20080086486A1 (en) Hierarchical federation metadata
CN114879907A (zh) 一种数据分布确定方法、装置、设备及存储介质
US10467143B1 (en) Event-driven cache
CN112910796B (zh) 流量管理方法、装置、设备、存储介质以及程序产品
CN113204441B (zh) 一种多应用id生成方法及系统
CN117155948A (zh) 集群管理方法、装置、电子设备及存储介质
CN104714923A (zh) 一种实现设备共享的方法和装置
CN112685451B (zh) 数据查询处理方法、装置、计算机设备及存储介质
CN117014175A (zh) 云系统的权限处理方法、装置、电子设备及存储介质
CN103164410B (zh) 一种文件存储及操作的方法,存储设备和系统
CN115438333A (zh) 一种权限分配的方法和装置
CN114462016A (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