一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式去中心化序列生成方法、装置及系统与流程

2021-11-09 21:04:00 来源:中国专利 TAG:


1.本发明涉及微服务/分布式软件技术领域,这些领域特别需要一种分布式去中心化序列生成方法、装置及系统。


背景技术:

2.序列就是软件系统中的业务主键,在传统的单体/集群应用中,序列一般都是从数据库获取(oracle sequence,mysql自增列),但在分布式、微服务技术框架下的应用,传统的序列不能满足数据库层分库的需求,也不能满足更高的性能需求。因此,在微服务、分布式技术框架下的应用,业务主键需要满足两个基本要求:可用于分库关键字,且具备较高性能。


技术实现要素:

3.本发明要解决的技术问题是提供一种分布式去中心化序列生成方法、装置及系统,能够提供在微服务、分布式技术框架下,具备可用于分库关键字、较高性能和去中心化的序列。
4.为解决上述技术问题,本发明提供了一种基于计算节点自我维护序列方法,所述方法包括:生成8字节的业务前缀;根据节点ip及端口号的哈希运算,生成4字节的节点号,也可从配置获取;根据当前时间,生成12字节的时间码;根据历史序号的取值,生成8字节的当前序号;将上述的业务前缀、节点号、时间码、当前序号顺次排列,生成序列。
5.在一些实施方式中,所述序号服务启动后,从1开始自增。
6.在一些实施方式中,节点号由服务ip和端口号hash生成,且最多可提供 9999个节点。
7.在一些实施方式中,对于节点号,在不同数据中心只要保证网段不同,即可保证节点号不重复。
8.在一些实施方式中,时间按照yymmddhhmmss的格式生成。
9.在一些实施方式中,时间自维护,服务启动后内部维持一个时钟,不与系统同步,每秒向后走动一秒,可有效避免时钟回拨导致序号重复。
10.在一些实施方式中,序号自服务启动后自增,与时间自维护一起,避免了系统重启后序号重复,同时序号大时间区间内节点内部是自增的,可用于分库的关键字。
11.在一些实施方式中,所述方法应用于微服务系统及分布式软件系统。
12.此外,本发明还提供了一种分布式去中心化序列生成装置,所述装置包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据前文所述的分布式去中心化序列生成方法。
13.此外,本发明还提供了一种分布式去中心化序列生成系统,所述系统包括:若干个计算节点,所述计算节点相互之间通过网络连接,且每个计算节点是根据前文所述的分布
式去中心化序列生成装置。
14.采用这样的设计后,本发明至少具有以下优点:
15.在分布式、微服务技术框架下的应用,每个节点内置了这个序号号服务,不需要集中管理,可生成节点内连续自增的序号,并且避免了时钟回拨导致的序号重复问题,不仅保证了高性能,同时因其具备大时间区间内(服务启动和停止之间)节点内自增的特点,可用于分库关键字。
附图说明
16.上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,以下结合附图与具体实施方式对本发明作进一步的详细说明。
17.图1是方法的流程图;
18.图2是序列的结构示意图。
具体实施方式
19.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
20.◆
序列规则:
21.√组成规则:8位业务前缀 4位节点号 12位时间 8位序号=32字节;
22.√业务前缀:根据输入可选;
23.√节点号:由服务ip和端口hash生成,4个字节可以有9999个节点,也可从配置获取;
24.√时间:按照yymmddhhmmss格式取,保证秒级,该时间在服务启动时由应用自身维护,不在从系统获取,避免时钟回拨导致序号重复;
25.√序号:服务启动后,从1开始自增,在服务停止之前可以保持序号连续;
26.◆
关键技术点:
27.√节点号由服务ip和端口号hash生成,且最多可提供9999个节点,在不同数据中心只要保证网段不同,即可保证节点号不重复;
28.√时间自维护,服务启动后内部维持一个时钟,不与系统同步,每秒向后走动一秒(最终会比系统时钟慢),可有效避免时钟回拨导致序号重复;
29.√序号自服务启动后自增,与时间自维护一起,避免了系统重启后序号重复,同时序号大时间区间内节点内部是自增的,可用于分库的关键字。
30.在分布式、微服务技术框架下的应用,每个节点内置了这个序号号服务,不需要集中管理,可生成节点内连续自增的序号,并且避免了时钟回拨导致的序号重复问题,不仅保证了高性能,同时因其具备大时间区间内(服务启动和停止之间)节点内自增的特点,可用于分库关键字。
31.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,本领域技术人员利用上述揭示的技术内容做出些许简单修改、等同变化或修饰,均落在本发明的保护范围内。


技术特征:
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所述的分布式去中心化序列生成装置。

技术总结
本发明提供了一种分布式去中心化序列生成方法、装置及系统。该方法包括:生成8字节的业务前缀;根据节点IP及端口号的哈希运算,生成4字节的节点号,也可从配置获取;根据当前时间,生成12字节的时间码;根据历史序号的取值,生成8字节的当前序号;将上述的业务前缀、节点号、时间码、当前序号顺次排列,生成序列。本发明提供的分布式去中心化序列生成方法、装置及系统能够提供在微服务、分布式技术框架下,具备可用于分库关键字、较高性能和去中心化的序列。列。列。


技术研发人员:雷建锋
受保护的技术使用者:北京神州数字科技有限公司
技术研发日:2021.08.11
技术公布日:2021/11/8
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献