CN113626410A - 分布式去中心化序列生成方法、装置及系统 - Google Patents
分布式去中心化序列生成方法、装置及系统 Download PDFInfo
- Publication number
- CN113626410A CN113626410A CN202110917587.2A CN202110917587A CN113626410A CN 113626410 A CN113626410 A CN 113626410A CN 202110917587 A CN202110917587 A CN 202110917587A CN 113626410 A CN113626410 A CN 113626410A
- Authority
- CN
- China
- Prior art keywords
- sequence
- service
- node
- generating
- distributed
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012423 maintenance Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101001023021 Homo sapiens LIM domain-binding protein 3 Proteins 0.000 description 1
- 102100035112 LIM domain-binding protein 3 Human genes 0.000 description 1
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种分布式去中心化序列生成方法、装置及系统。该方法包括:生成8字节的业务前缀;根据节点IP及端口号的哈希运算,生成4字节的节点号,也可从配置获取;根据当前时间,生成12字节的时间码;根据历史序号的取值,生成8字节的当前序号;将上述的业务前缀、节点号、时间码、当前序号顺次排列,生成序列。本发明提供的分布式去中心化序列生成方法、装置及系统能够提供在微服务、分布式技术框架下,具备可用于分库关键字、较高性能和去中心化的序列。
Description
技术领域
本发明涉及微服务/分布式软件技术领域,这些领域特别需要一种分布式去中心化序列生成方法、装置及系统。
背景技术
序列就是软件系统中的业务主键,在传统的单体/集群应用中,序列一般都是从数据库获取(oracle sequence,mysql自增列),但在分布式、微服务技术框架下的应用,传统的序列不能满足数据库层分库的需求,也不能满足更高的性能需求。因此,在微服务、分布式技术框架下的应用,业务主键需要满足两个基本要求:可用于分库关键字,且具备较高性能。
发明内容
本发明要解决的技术问题是提供一种分布式去中心化序列生成方法、装置及系统,能够提供在微服务、分布式技术框架下,具备可用于分库关键字、较高性能和去中心化的序列。
为解决上述技术问题,本发明提供了一种基于计算节点自我维护序列方法,所述方法包括:生成8字节的业务前缀;根据节点IP及端口号的哈希运算,生成4字节的节点号,也可从配置获取;根据当前时间,生成12字节的时间码;根据历史序号的取值,生成8字节的当前序号;将上述的业务前缀、节点号、时间码、当前序号顺次排列,生成序列。
在一些实施方式中,所述序号服务启动后,从1开始自增。
在一些实施方式中,节点号由服务ip和端口号hash生成,且最多可提供 9999个节点。
在一些实施方式中,对于节点号,在不同数据中心只要保证网段不同,即可保证节点号不重复。
在一些实施方式中,时间按照yyMMddhhmmss的格式生成。
在一些实施方式中,时间自维护,服务启动后内部维持一个时钟,不与系统同步,每秒向后走动一秒,可有效避免时钟回拨导致序号重复。
在一些实施方式中,序号自服务启动后自增,与时间自维护一起,避免了系统重启后序号重复,同时序号大时间区间内节点内部是自增的,可用于分库的关键字。
在一些实施方式中,所述方法应用于微服务系统及分布式软件系统。
此外,本发明还提供了一种分布式去中心化序列生成装置,所述装置包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的分布式去中心化序列生成方法。
此外,本发明还提供了一种分布式去中心化序列生成系统,所述系统包括:若干个计算节点,所述计算节点相互之间通过网络连接,且每个计算节点是根据前文所述的分布式去中心化序列生成装置。
采用这样的设计后,本发明至少具有以下优点:
在分布式、微服务技术框架下的应用,每个节点内置了这个序号号服务,不需要集中管理,可生成节点内连续自增的序号,并且避免了时钟回拨导致的序号重复问题,不仅保证了高性能,同时因其具备大时间区间内(服务启动和停止之间)节点内自增的特点,可用于分库关键字。
附图说明
上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,以下结合附图与具体实施方式对本发明作进一步的详细说明。
图1是方法的流程图;
图2是序列的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
◆序列规则:
√组成规则:8位业务前缀+4位节点号+12位时间+8位序号=32字节;
√业务前缀:根据输入可选;
√节点号:由服务ip和端口hash生成,4个字节可以有9999个节点,也可从配置获取;
√时间:按照yyMMddhhmmss格式取,保证秒级,该时间在服务启动时由应用自身维护,不在从系统获取,避免时钟回拨导致序号重复;
√序号:服务启动后,从1开始自增,在服务停止之前可以保持序号连续;
◆关键技术点:
√节点号由服务ip和端口号hash生成,且最多可提供9999个节点,在不同数据中心只要保证网段不同,即可保证节点号不重复;
√时间自维护,服务启动后内部维持一个时钟,不与系统同步,每秒向后走动一秒(最终会比系统时钟慢),可有效避免时钟回拨导致序号重复;
√序号自服务启动后自增,与时间自维护一起,避免了系统重启后序号重复,同时序号大时间区间内节点内部是自增的,可用于分库的关键字。
在分布式、微服务技术框架下的应用,每个节点内置了这个序号号服务,不需要集中管理,可生成节点内连续自增的序号,并且避免了时钟回拨导致的序号重复问题,不仅保证了高性能,同时因其具备大时间区间内(服务启动和停止之间)节点内自增的特点,可用于分库关键字。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,本领域技术人员利用上述揭示的技术内容做出些许简单修改、等同变化或修饰,均落在本发明的保护范围内。
Claims (10)
1.一种分布式去中心化序列生成方法,其特征在于,包括:
生成8字节的业务前缀;
根据节点I P及端口号的哈希运算,生成4字节的节点号,也可从配置获取;
根据当前时间,生成12字节的时间码;
根据历史序号的取值,生成8字节的当前序号;
将上述的业务前缀、节点号、时间码、当前序号顺次排列,生成序列。
2.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,所述序号服务启动后,从1开始自增。
3.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,节点号由服务ip和端口号hash生成,且最多可提供9999个节点。
4.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,对于节点号,在不同数据中心只要保证网段不同,即可保证节点号不重复。
5.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,时间按照yyMMddhhmmss的格式生成。
6.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,时间自维护,服务启动后内部维持一个时钟,不与系统同步,每秒向后走动一秒,可有效避免时钟回拨导致序号重复。
7.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,序号自服务启动后自增,与时间自维护一起,避免了系统重启后序号重复,同时序号大时间区间内节点内部是自增的,可用于分库的关键字。
8.根据权利要求1所述的分布式去中心化序列生成方法,其特征在于,所述方法应用于微服务系统及分布式软件系统。
9.一种分布式去中心化序列生成装置,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至8任意一项所述的分布式去中心化序列生成方法。
10.一种分布式去中心化序列生成系统,其特征在于,包括:
若干个计算节点,所述计算节点相互之间通过网络连接,且每个计算节点是根据权利要求9所述的分布式去中心化序列生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110917587.2A CN113626410A (zh) | 2021-08-11 | 2021-08-11 | 分布式去中心化序列生成方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110917587.2A CN113626410A (zh) | 2021-08-11 | 2021-08-11 | 分布式去中心化序列生成方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626410A true CN113626410A (zh) | 2021-11-09 |
Family
ID=78384298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110917587.2A Pending CN113626410A (zh) | 2021-08-11 | 2021-08-11 | 分布式去中心化序列生成方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626410A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170124497A1 (en) * | 2015-10-28 | 2017-05-04 | Fractal Industries, Inc. | System for automated capture and analysis of business information for reliable business venture outcome prediction |
CN108241715A (zh) * | 2016-12-27 | 2018-07-03 | 苏宁云商集团股份有限公司 | 一种分布式数据库主键生成方法及装置 |
CN108959386A (zh) * | 2018-05-31 | 2018-12-07 | 深圳壹账通智能科技有限公司 | 分布式全局唯一id生成方法、装置、设备和存储介质 |
CN109491772A (zh) * | 2018-09-28 | 2019-03-19 | 深圳财富农场互联网金融服务有限公司 | 业务序号生成方法、装置、计算机设备和存储介质 |
CN109690524A (zh) * | 2016-09-15 | 2019-04-26 | 甲骨文国际公司 | 分布式事件处理系统中的数据序列化 |
CN109783126A (zh) * | 2019-01-10 | 2019-05-21 | 珠海金山网络游戏科技有限公司 | 一种分布式全局id生成方法及其装置 |
-
2021
- 2021-08-11 CN CN202110917587.2A patent/CN113626410A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170124497A1 (en) * | 2015-10-28 | 2017-05-04 | Fractal Industries, Inc. | System for automated capture and analysis of business information for reliable business venture outcome prediction |
CN109690524A (zh) * | 2016-09-15 | 2019-04-26 | 甲骨文国际公司 | 分布式事件处理系统中的数据序列化 |
CN108241715A (zh) * | 2016-12-27 | 2018-07-03 | 苏宁云商集团股份有限公司 | 一种分布式数据库主键生成方法及装置 |
CN108959386A (zh) * | 2018-05-31 | 2018-12-07 | 深圳壹账通智能科技有限公司 | 分布式全局唯一id生成方法、装置、设备和存储介质 |
CN109491772A (zh) * | 2018-09-28 | 2019-03-19 | 深圳财富农场互联网金融服务有限公司 | 业务序号生成方法、装置、计算机设备和存储介质 |
CN109783126A (zh) * | 2019-01-10 | 2019-05-21 | 珠海金山网络游戏科技有限公司 | 一种分布式全局id生成方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959386B (zh) | 分布式全局唯一id生成方法、装置、设备和存储介质 | |
WO2018040722A1 (zh) | 表数据查询方法及装置 | |
CN110648178A (zh) | 一种增加kafka消费能力的方法 | |
CN110505306B (zh) | 一种可指定位数的数据id生成方法 | |
US20200019559A1 (en) | Synchronizing object in local object storage node | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN110795499A (zh) | 基于大数据的集群数据同步方法、装置、设备及存储介质 | |
CN111966677A (zh) | 数据报表的处理方法、装置、电子设备及存储介质 | |
CN107040576A (zh) | 信息推送方法及装置、通讯系统 | |
KR20210038457A (ko) | Rpc 멤버 정보 획득 방법, 장치, 전자 기기 및 저장 매체 | |
CN108647193B (zh) | 一种可应用于分布式系统的唯一标识符生成方法及装置 | |
CN113064903A (zh) | 一种全局id生成方法、装置、设备及存储介质 | |
CN113626410A (zh) | 分布式去中心化序列生成方法、装置及系统 | |
CN107451254B (zh) | 一种生成数据库表数据唯一标识的方法 | |
CN116991562B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112632183B (zh) | 一种基于电网网络分区数据表准实时同步方法及系统 | |
CN113407560A (zh) | 更新消息处理方法、数据同步方法、配置信息配置方法 | |
CN113886455A (zh) | 全局唯一序列号生成方法、装置、电子设备及存储介质 | |
CN110912979B (zh) | 一种解决多服务器资源同步冲突方法 | |
CN115827657A (zh) | 数据库的数据同步方法、存储介质以及设备 | |
CN116010498A (zh) | 一种分布式全局唯一规则id的生成方法 | |
US11671370B2 (en) | Method and apparatus for adjusting network flow | |
CN108536758B (zh) | 一种数据库模式的数据表重构方法、装置及系统 | |
CN105787013B (zh) | 一种异构数据的类型名称分配方法及系统 | |
CN111985187B (zh) | 分布式id获取方法、装置、电子设备和存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211109 |