[发明专利]解决时钟回拨问题的方法和装置在审
申请号: | 202110880919.4 | 申请日: | 2021-08-02 |
公开(公告)号: | CN113589881A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 孙绍华 | 申请(专利权)人: | 北京汇钧科技有限公司 |
主分类号: | G06F1/06 | 分类号: | G06F1/06;G06F1/10;G06F11/14 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王治东 |
地址: | 100176 北京市大兴区北京经济*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解决 时钟 问题 方法 装置 | ||
本公开提供一种解决时钟回拨问题的方法和装置,其中,方法包括:接收业务请求并生成分布式唯一标识,更新自身业务流程实例标识;获取所述业务的第一服务器时间,并判断所述第一服务器时间是否存在时钟回退;若判断第一服务器时间不存在时钟回退,则继续以不断更新的自身业务流程实例标识为基础,接收业务请求生成分布式唯一标识,并更新最新时间;若判断第一服务器时间存在时钟回退,则选择备份业务流程实例标识中的一个备份业务流程实例标识以及对应的最新时间为基础,接收所述业务请求生成分布式唯一标识,并更新最新时间。本公开通过设置备份的方式,将回退的时间进行追回,实现对之前生成的id的利用,避免直接抛错处理带来的用户体验不佳。
技术领域
本公开涉及计算机技术领域,尤其涉及一种解决时钟回拨问题的方法和装置。
背景技术
雪花算法生成规则依赖时间戳,这样由于时间校准,以及其他因素,可能导致服务器时间回退,如果恰巧回退前生成过一些id,而时间回退后,生成的id就有可能重复。现有技术中对于此问题并没有给出明确的解决方案,而是简单的抛错处理,这样会造成在时间被追回之前的这段时间服务不可用,导致交易失败,用户体验极其不好。
发明内容
本公开提供一种解决时钟回拨问题的方法和装置,用以解决现有技术中无法处理时间回退已生成的id的缺陷,实现解决服务器时钟回退服务不可用问题。
第一方面,本公开提供一种解决时钟回拨问题的方法,包括:
接收业务请求并生成分布式唯一标识,更新自身业务流程实例标识;
获取所述业务的第一服务器时间,并判断所述第一服务器时间是否存在时钟回退;
若判断所述第一服务器时间不存在时钟回退,则继续以不断更新的所述自身业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间;
若判断所述第一服务器时间存在时钟回退,以备份业务流程实例标识中的一个备份业务流程实例标识及其对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间。
根据本公开提供的解决时钟回拨问题的方法,其中,在所述接收业务生成的分布式唯一标识之前,还包括:
设置所述业务的备份数量;
基于所述备份数量分配所述业务的自身业务流程实例标识和每个备份的业务流程实例标识;
初始化所述业务的所述自身业务流程实例标识、所述每个备份业务流程实例标识以及与所述每个备份业务流程实例标识对应的最新时间,其中最新时间的初始值为0毫秒。
根据本公开提供的解决时钟回拨问题的方法,其中,在所述选择所述备份业务流程实例标识中的一个备份业务流程实例标识以及对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间之后,还包括:
接收所述业务的第二服务器时间,并判断所述第二服务器时间是否存在时钟回退;
若判断所述第二服务器时间不存在时钟回退,则继续以所述被选择的一个备份业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间;
若判断所述第二服务器时间存在时钟回退,则从所述更新后的自身业务流程实例标识和其他备份业务流程实例标识中选择一个业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间。
根据本公开提供的解决时钟回拨问题的方法,其中,所述若判断所述第一服务器时间存在时钟回退,以备份业务流程实例标识中的一个备份业务流程实例标识及其对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间,具体包括:
确定时钟回退的时间;
确定每个所述备份业务流程实例标识中对应的最新时间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京汇钧科技有限公司,未经北京汇钧科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110880919.4/2.html,转载请声明来源钻瓜专利网。