[发明专利]一种流水号生成方法、装置及服务器在审
| 申请号: | 201510424282.2 | 申请日: | 2015-07-17 |
| 公开(公告)号: | CN105072160A | 公开(公告)日: | 2015-11-18 |
| 发明(设计)人: | 丁志伟;殷舒;刘胜 | 申请(专利权)人: | 联动优势科技有限公司 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
| 地址: | 100088 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 流水 生成 方法 装置 服务器 | ||
技术领域
本发明涉及计算机数据结构领域,尤其涉及一种流水号生成方法、装置及服务器。
背景技术
目前,基于数据库系统生成流水号的方案中,需要依赖集中式的数据库,当多个应用访问同一数据库获取流水号时,数据库的压力过大。而且依赖单一的数据库,存在集中式单点,单点发生故障的时候会波及到整个系统或者网络,从而导致整个系统或者网络的瘫痪。因此,依赖数据库生成流水号的方案存在集中式单点,系统性能存在瓶颈。
现有方案中往往通过增加外部数据库进行分布式改造来解决上述集中式问题,如,通过跨机房数据库双活来进行跨IDC机房的分布式改造,但是交替访问不同数据库会存在交互效率慢的劣势,而且按照此方案获取到的流水号无法保证唯一。
在目前“互联网+”的大环境下,电子商务和O2O应用的井喷式增长,对后端业务处理能力有了更高的要求。需要后端应用能够提供分布式处理的能力,支持分布式集群部署,尤其是跨IDC机房的分布部署。
在分布式集群环境中,要求生成流水号的服务的应用端具有更高的并发处理能力,更好的可扩展性。目前在已有的方案中对以上都没有较好的解决。
发明内容
本发明实施例提供一种流水号生成方法、装置及服务器,用以实现分布式集群环境中的应用端不依赖数据库生成流水号,生成流水号的服务具有更高的并发处理能力。
本发明实施例提供一种流水号生成方法,该方法包括:
接收流水号分配请求;
获取接收该流水号分配请求的应用节点的节点编号,其中,在所述应用节点所属的分布式集群中任两个应用节点的节点编号不同;
获取所述应用节点所在服务器的当前系统时间;
根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,其中,所述应用节点在所述当前系统时间的时间精度内生成的任两个时间序列值不同;
对所述节点编号、所述当前系统时间和所述时间序列值的二进制数进行位或运算,生成单个长整型LONG数据结构类型的流水号。
上述方法流程实现了分布式集群中的单个应用节点不依赖外部数据库,单个应用节点自身就可以实时的根据流水号分配请求生成一个流水号,进而解决了依赖单一的数据库获取流水号导致数据库压力过大的问题。进一步的,分布式集群中单个应用节点在最小单位时间长度内生成的任两个时间序列值不同,使得单个应用节点在最小单位时间长度内可以为接收多个流水号分配请求,以及生成与这多个流水号分配请求关联的流水号,因此,单个应用节点在最小单位时间长度内就能生成若干多个流水号,使得分布式集群中的后端应用生成流水号的服务具有效率高,可扩展性好的特点。在应用节点所属的分布式集群中任两个应用节点的节点编号不同,可实现同一个分布式集群中的多个应用节点并发执行生成流水号的操作,使得分布式集群环境中生成流水号的服务具有更高的并发处理能力。应用节点生成的流水号可保存为单个LONG类型,流水号的长度仅为8字节,在计算机组成结构、计算机编程语言和数据库中,都对LONG类型有很好的支持,存储和检索都很方便,而且效率高。
进一步地,所述流水号分配请求是来自所述应用节点所在服务器的流水号分配请求,或者是外部服务器发送的流水号分配请求,其中,所述外部服务器与所述应用节点所在的服务器从属于同一个分布式集群。
上述方法流程中,能够实现从属于同一分布式集群中的不同服务器的应用节点所生成的流水号都是唯一的。
进一步地,获取所述应用节点所在服务器的当前系统时间,包括:
通过时间同步服务获取所述应用节点所在服务器的当前系统时间。时间同步服务可以保证在同一个分布式集群中的所有机器的时间是一致的,使得应用节点所在服务器的当前系统时间与同一个分布式集群中的其他服务器的当前系统时间同步。
进一步地,根据所述流水号分配请求,生成与所述流水号分配请求关联的时间序列值,包括:
根据所述流水号分配请求,查找内存中是否存在当前系统时间的时间精度内的计数,若有,则将所述计数标记为与所述流水号分配请求关联的时间序列值,将所述计数自增后保存在内存中;若否,则将初始值标记为与所述流水号分配请求关联的时间序列值,将所述初始值自增后的计数保存在内存中。
该实施方式将自增后的计数保存在内存中,与保存在本地文件中相比,能够提高应用节点生成时间序列值的效率,可以节省存储时间。
进一步地,在所述单个LONG数据结构类型的流水号中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联动优势科技有限公司,未经联动优势科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510424282.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型的针孔消融腋臭治疗装置
- 下一篇:一种脊椎椎板成型固定装置





