[发明专利]分布式系统的序列号生成方法及装置在审
| 申请号: | 201810439457.0 | 申请日: | 2018-05-09 |
| 公开(公告)号: | CN108647308A | 公开(公告)日: | 2018-10-12 |
| 发明(设计)人: | 刘瑞贤;许涛;张晋锋;王榕 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;H04L29/08 |
| 代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;卢军峰 |
| 地址: | 100193 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式系统 生成序列号 客户端 | ||
本发明公开了一种分布式系统的序列号生成方法及装置,该序列号生成方法包括:划分多个分片,其中每个分片的分片号互不相同;生成分片内的序列号以生成序列号,所述序列号包括所述分片号和所述分片内的序列号;所述分布式系统中的客户端根据所述分片号获取所述序列号。本发明的上述技术方案至少具有通用性好、性能较高的优势。
技术领域
本发明涉及一种分布式系统的序列号生成方法及序列号生成装置。
背景技术
在业务系统中,对动态生成的新数据常常需要一个序列号来唯一确定一条数据,表现在关系型数据库中,一般是独立的ID字段,但序列号的应用不局限于数据库ID。其中,ID也称为序列号或帐号,是某个体系中相对唯一的编码。相当于是一种“身份证”在某一具体的事物中,身份标识号一般是不变的,可由设计者自己制定的规则来确定。
序列号有多种生成策略,如数据库或第三方框架提供的自增ID、UUID(Universally Unique Identifier,通用唯一识别码,其目的是让分布式系统中的所有元素都能有唯一的辨识信息),或由业务系统自定义的序列号生成策略,如以时间戳或业务特定的不会重复的字符串为序列号等。
现有的自增的序列号简单、性能好,但是如果业务上有特殊要求就不能用,比如作为订单号会暴露自家的业务量,或者做了互为主从,用数据库自增就可能重复。
UUID因为不会重复,天然适合分布式,但它不是数值型,长度又很长,建立索引的性能较差。
有时因为业务需求,需要业务相关的自定义序列号,如某些订单号,要在售后流程中使用,需要操作人员输入,不能太长,又要方便客服快速划分领域,就有了自定义规则序列号,限制长度,同时规定好第几位表示什么含义。但是这种策略只能用在特定的业务系统,做不到普遍适用。
发明内容
针对相关技术中存在的问题,本发明提出一种分布式系统的序列号生成方法及序列号生成装置,至少具有通用性好、性能较高的优势。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种分布式系统的序列号生成方法,包括:
划分多个分片,其中每个分片的分片号互不相同;
生成分片内的序列号以生成序列号,序列号包括分片号和分片内的序列号;
分布式系统中的客户端根据分片号获取序列号。
在一个实施例中,根据分片号获取序列号包括:客户端根据客户端的特征信息映射到相应的分片号,并获取序列号。
在一个实施例中,序列号生成方法还包括:将序列号加1后回写以表示序列号被占用。
在一个实施例中,特征信息为MAC地址或主机名。
在一个实施例中,通过共享的存储系统记录序列号;共享的存储系统为缓存系统或者数据库。
根据本发明的另一方面,提供了一种分布式系统的序列号生成装置,分布式系统包括客户端,序列号生成装置包括:
共享的存储系统,包括:
第一生成模块,用于划分多个分片,其中每个分片的分片号互不相同;
第二生成模块,用于生成分片内的序列号以生成序列号,序列号包括分片号和分片内的序列号;
客户端的获取模块,用于根据分片号获取序列号。
在一个实施例中,获取模块包括:映射子模块,用于根据客户端的特征信息映射到相应的分片号并获取序列号。
在一个实施例中,获取模块包括:回写子模块,用于将序列号加1后回写共享的存储系统以表示序列号被占用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810439457.0/2.html,转载请声明来源钻瓜专利网。





