【技术实现步骤摘要】
解决时钟回拨问题的方法和装置
[0001]本公开涉及计算机
,尤其涉及一种解决时钟回拨问题的方法和装置。
技术介绍
[0002]雪花算法生成规则依赖时间戳,这样由于时间校准,以及其他因素,可能导致服务器时间回退,如果恰巧回退前生成过一些id,而时间回退后,生成的id就有可能重复。现有技术中对于此问题并没有给出明确的解决方案,而是简单的抛错处理,这样会造成在时间被追回之前的这段时间服务不可用,导致交易失败,用户体验极其不好。
技术实现思路
[0003]本公开提供一种解决时钟回拨问题的方法和装置,用以解决现有技术中无法处理时间回退已生成的id的缺陷,实现解决服务器时钟回退服务不可用问题。
[0004]第一方面,本公开提供一种解决时钟回拨问题的方法,包括:
[0005]接收业务请求并生成分布式唯一标识,更新自身业务流程实例标识;
[0006]获取所述业务的第一服务器时间,并判断所述第一服务器时间是否存在时钟回退;
[0007]若判断所述第一服务器时间不存在时钟回退,则继续以不断更新的所述自身业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间;
[0008]若判断所述第一服务器时间存在时钟回退,以备份业务流程实例标识中的一个备份业务流程实例标识及其对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间。
[0009]根据本公开提供的解决时钟回拨问题的方法,其中,在所述接收业务生成的分布式唯一标识之前,还包括:< ...
【技术保护点】
【技术特征摘要】
1.一种解决时钟回拨问题的方法,其特征在于,包括:接收业务请求并生成分布式唯一标识,更新自身业务流程实例标识;获取所述业务的第一服务器时间,并判断所述第一服务器时间是否存在时钟回退;若判断所述第一服务器时间不存在时钟回退,则继续以不断更新的所述自身业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间;若判断所述第一服务器时间存在时钟回退,以备份业务流程实例标识中的一个备份业务流程实例标识及其对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间。2.根据权利要求1所述的解决时钟回拨问题的方法,其特征在于,在所述接收业务生成的分布式唯一标识之前,还包括:设置所述业务的备份数量;基于所述备份数量分配所述业务的自身业务流程实例标识和每个备份的业务流程实例标识;初始化所述业务的所述自身业务流程实例标识、所述每个备份业务流程实例标识以及与所述每个备份业务流程实例标识对应的最新时间,其中最新时间的初始值为0毫秒。3.根据权利要求1所述的解决时钟回拨问题的方法,其特征在于,在所述选择所述备份业务流程实例标识中的一个备份业务流程实例标识以及对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间之后,还包括:接收所述业务的第二服务器时间,并判断所述第二服务器时间是否存在时钟回退;若判断所述第二服务器时间不存在时钟回退,则继续以所述被选择的一个备份业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间;若判断所述第二服务器时间存在时钟回退,则从所述更新后的自身业务流程实例标识和其他备份业务流程实例标识中选择一个业务流程实例标识为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间。4.根据权利要求1所述的解决时钟回拨问题的方法,其特征在于,所述若判断所述第一服务器时间存在时钟回退,以备份业务流程实例标识中的一个备份业务流程实例标识及其对应的最新时间为基础,接收所述业务请求并生成分布式唯一标识,并更新最新时间,具体包括:确定时钟回退的时间;确定每个所述备份业务流程实例标识中对应的最新时间;将所述时钟回退的时间与所述每份所述备份业务流程实例标识中对应的最新时间相比较,判断所述时钟回退的时间是否不小于每个所述备份业务流程实例标识中对应的最新时间;筛选出时钟回退的时间不小于备份业务流程实例标识中对应的最新时间的第一个备份业务流程实例标识;将所述第一个备份业务流程实例标识作为被选择的备份业务流程实例标识并用来继续生成分布式唯一标识,同时更新最新时间;其中,第一个备份业务流程实例标识是按照备份业务流程实例标识的顺序依次与所述时钟回退的时间相比较获得。
5.根据权利要求3所述的解决时钟回拨问题的方法,其特征在于,所述若判断所述第二服务器时间存在时钟回退,则从所述更新后的自身业务流程实例标识和其他备份业务流程实例标识中选择一个业务流程实例标识为基础,接收所述业务请求并生成分布式唯一...
【专利技术属性】
技术研发人员:孙绍华,
申请(专利权)人:北京汇钧科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。