[发明专利]流水号生成方法及系统有效
申请号: | 201910917001.5 | 申请日: | 2019-09-26 |
公开(公告)号: | CN110619114B | 公开(公告)日: | 2022-10-25 |
发明(设计)人: | 贾卫林;曹进辉 | 申请(专利权)人: | 北京明略软件系统有限公司 |
主分类号: | G06F40/126 | 分类号: | G06F40/126;G06F16/22 |
代理公司: | 北京超成律师事务所 11646 | 代理人: | 刘静 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 流水 生成 方法 系统 | ||
本申请实施例提供了一种流水号生成方法及系统,通过网关设备响应于流水号生成请求,获得业务编码,并且根据接收到流水号生成请求时的系统时间生成时间戳。由服务节点获得该时间戳下流水号生成请求的序列号,并由服务节点根据业务编码、时间戳、预先生成的节点编码以及序列号生成与流水号生成请求对应的流水号。如此,将时间戳的生成提前到网关设备进行,由网关设备统一进行时间戳的生成,各个服务节点基于网关设备生成的时间戳进行流水号生成,保证了各个流水号的时间信息来源的唯一性,解决了不同服务节点时间不同步的问题。并且,生成的流水号中包含业务信息,利于后续业务信息的反解。
技术领域
本申请涉及分布式系统技术领域,具体而言,涉及一种流水号生成方法及系统。
背景技术
很多应用场景下,例如网络交易场景下,需要对每一笔交易或每一笔业务生成唯一的流水号,以对该笔业务或交易进行记录。当前有多种方式用于流水号的生成,生成的流水号也有多种不同的形式。目前,较好的方式就是利用分布式系统进行流水号生成,但是现有技术中,在利用分布式系统生成流水号时,由于各个服务节点的中央处理器(CentralProcessing Unit,CPU)时钟振荡频率的差异,不同服务节点之间时间难以完全同步,造成生成的流水号可能存在重复的现象,对业务造成严重的影响。并且,生成的流水号缺乏业务信息体现,不便于理解。
发明内容
本申请的目的包括,例如,提供了一种流水号生成方法及系统,其能够保障生成的流水号的唯一性。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供一种流水号生成方法,应用于包括网关设备及多个服务节点的流水号生成系统,所述网关设备分别与各所述服务节点通信,所述方法包括:
所述网关设备响应流水号生成请求,获得业务编码;
所述网关设备获取接收到所述流水号生成请求时的系统时间,根据所述系统时间生成时间戳,将所述业务编码和所述时间戳发送至所述多个服务节点中的其中一个服务节点;
所述服务节点接收到所述业务编码和时间戳后,获得所述时间戳下所述流水号生成请求的序列号;
所述服务节点根据所述业务编码、时间戳、预先生成的节点编码以及所述序列号生成与所述流水号生成请求对应的流水号。
在可选的实施方式中,所述响应流水号生成请求,获得业务编码的步骤,包括:
在所述流水号生成请求中携带有业务参数时,所述网关设备根据所述业务参数生成对应的业务编码;
在所述流水号生成请求中未携带业务参数时,所述网关设备获得发起所述流水号生成请求的发起方的账户信息,得到与所述账户信息关联的业务编码。
在可选的实施方式中,所述获得所述时间戳下所述流水号生成请求的序列号的步骤,包括:
查询存储的时间戳是否与接收到的时间戳相同,若相同,则将存储的时间戳下的序列号增加预设值后作为所述流水号生成请求关联的序列号,并将该序列号存储;
若存储的时间戳小于接收到的时间戳,则将存储的时间戳更新为接收到的时间戳,并将更新后的时间戳存储,将预设的初始序列号作为所述流水号生成请求关联的序列号,并将该序列号进行存储。
在可选的实施方式中,所述方法还包括:
在生成的序列号超过预设阈值时,所述服务节点发送错误信息至所述网关设备;
所述网关设备在接收到所述错误信息后,等待预设时长并获得该预设时长后的系统时间,根据该系统时间对所述时间戳进行更新,将更新后的时间戳发送至所述服务节点;
所述服务节点基于更新后的时间戳生成序列号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明略软件系统有限公司,未经北京明略软件系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910917001.5/2.html,转载请声明来源钻瓜专利网。