一种基于Ignite的分布式发号器实现方法及系统技术方案

技术编号:39060436 阅读:17 留言:0更新日期:2023-10-12 19:53
本申请提供了一种基于Ignite的分布式发号器实现方法及系统,其特征在于,包括:S1、对Ignite节点进行第一配置以打开Ignite节点的REST API功能;S2、获取应用的第一请求信息,其中所述第一请求包括HTTP请求,所述第一请求信息包括发号器的第一标识信息、步长信息;S3、基于发号器的第一标识信息轮询查询对应的发号器,直到找到对应的发号器,根据步长信息与初始序列号,发号器生成分布式序列号;S4、判断是否满足停止生成分布式序列号的预设条件,如果满足则停止生成分布式序列号。使用本发明专利技术可以仅通过客户端的请求就与Ignite集群构建的分布式发号器服务之间快速交互并获取全局唯一、趋势递增的分布式ID序列号。趋势递增的分布式ID序列号。趋势递增的分布式ID序列号。

【技术实现步骤摘要】
一种基于Ignite的分布式发号器实现方法及系统


[0001]本专利技术涉及分布式发号器实现方法相关的
,尤其是涉及一种基于Ignite的分布式发号器实现方法及系统。

技术介绍

[0002]在分布式系统中,经常需要对大量的数据、消息、http请求等进行唯一标识,例如订单流水号、操作记录流水号、优惠券ID等等,需要一个稳定的ID生成服务来生成这些唯一标识。一般的实现方式有数据库自增主键,基于雪花算法的分布式ID生成等,可以满足ID序列号的全局唯一,趋势递增。
[0003]目前基于雪花算法的分布式ID生成方式较为复杂,而且需要开发人员考虑时间回拨等问题,在一般业务场景下使用类似数据库自增的方式生成的ID即够用,但数据库本身存在一定的性能瓶颈,使用数据库自增主键生成方式性能较差;用户还需要根据不同数据库执行各种SQL来生成ID,导致与耦合程度较高,可维护性差。
[0004]基于以上的技术问题,本申请提出了一种基于Ignite的分布式发号器实现方法及系统,使用内存对ID序号进行存储及变更,相比于使用数据库自增主键生成ID的性能有较大提升,且可以通过增加Ignite集群中节点数量来扩展应用获取ID的性能。应用通过HTTP请求的方式从Ignite集群发号器获取ID,与应用业务逻辑解耦,可维护性较高。使用本专利技术的发号器实现方法及系统后,应用不需要集成任何数据库客户端、ID生成组件代码,仅通过HTTP请求就可以与Ignite集群构建的分布式发号器服务之间快速交互并获取全局唯一、趋势递增的分布式ID序列号。<br/>[0005]值得说明的是,本申请所涉及数据采集及迁移行为都已经经过用户的同意,并且为申请人进行正常的经营活动所必需。对于采集后的数据申请人进行了匿名化、保密等脱敏处理,并相应设置了数据的访问权限以确保不会泄露用户的隐私,本申请涉及的数据合规措施仅做列举,其他相关的数据合规措施申请人也有设置。申请人所进行的数据处理活动符合数据安全法与个人信息保护法等法律法规的规定。

技术实现思路

[0006]为解决现有状况的不足,本专利技术针对以上
技术介绍
的缺陷,本专利技术提出了一种基于Ignite的分布式发号器实现方法及系统。包括:
[0007]本申请第一方面提出了一种基于Ignite的分布式发号器实现方法,其特征在于,包括:
[0008]S1、对Ignite节点进行第一配置以打开Ignite节点的REST API功能;
[0009]S2、获取应用的第一请求信息,其中所述第一请求包括HTTP请求,所述第一请求信息包括发号器的第一标识信息、步长信息;
[0010]S3、基于发号器的第一标识信息轮询查询对应的发号器,直到找到对应的发号器,根据步长信息与初始序列号,发号器生成分布式序列号;
[0011]S4、判断是否满足停止生成分布式序列号的预设条件,如果满足则停止生成分布式序列号。
[0012]进一步的,所述方法还包括S5:将所述分布式序列号持久化存储和\或将分布式序列号返回给应用。
[0013]进一步的,所述方法还包括S6:
[0014]S61、基于应用需求信息判断分布式发号器性能是否满足需求;
[0015]S62、如果不能满足需求,则将新的Ignite节点加入已有的Ignite节点集群。
[0016]进一步的,所述步长信息还可以预设于Ignite节点,所述发号器的第一标识信息以键值对的方式存储,其中发号器的第一标识信息为key值。
[0017]进一步的,所述S3包括:
[0018]S31、基于key值查询发号器是否在Ignite节点;;
[0019]S32、如果不在Ignite节点上,则上述Ignite节点将第一请求信息发送到新的Ignite节点直到找到对应的发号器。
[0020]进一步的,所述S3还包括:
[0021]S301、设置初始序列号,Ignite节点集群基于步长信息确定发号器的数量;
[0022]S302、基于初始序列号按照第一预设规则生成分布式序列号,其中所述第一预设规则包括拼接规则、雪花算法。
[0023]本申请第二方面提出了一种基于Ignite的分布式发号器实现装置,其特征在于,包括:
[0024]配置模块,用于对Ignite节点进行第一配置以打开Ignite节点的REST API功能;
[0025]获取模块,用于获取应用的第一请求信息,其中所述第一请求包括HTTP请求,所述第一请求信息包括发号器的第一标识信息、步长信息;
[0026]查询生成模块,用于基于发号器的第一标识信息轮询查询对应的发号器,直到找到对应的发号器,根据步长信息与初始序列号,发号器生成分布式序列号;
[0027]判断终止模块,用于判断是否满足停止生成分布式序列号的预设条件,如果满足则停止生成分布式序列号。
[0028]本申请第三方面提出了一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
[0029]所述存储器存储计算机执行指令;
[0030]所述处理器执行所述存储器存储的计算机执行指令,以实现上述基于Ignite的分布式发号器实现的方法。
[0031]本申请第四方面提出了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述基于Ignite的分布式发号器实现的方法。
[0032]本申请第五方面提出了一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现上述基于Ignite的分布式发号器实现的方法。
[0033]本专利技术的有益效果为:内存对ID序号进行存储及变更,相比于使用数据库自增主键生成ID的性能有较大提升,且可以通过增加Ignite集群中节点数量来扩展应用获取ID的性能。应用通过HTTP请求的方式从Ignite集群发号器获取ID,与应用业务逻辑解耦,可维护
性较高。使用本专利技术的发号器实现方法及系统后,应用不需要集成任何数据库客户端、ID生成组件代码,仅通过HTTP请求就可以与Ignite集群构建的分布式发号器服务之间快速交互并获取全局唯一、趋势递增的分布式ID。
附图说明
[0034]图1为本专利技术的基于Ignite的分布式发号器实现方法的流程示意图。
[0035]图2为本专利技术的基于Ignite的分布式发号器实现装置的结构框图。
[0036]图3为本专利技术的实施例提供的电子设备的结构示意图。
具体实施方式
[0037]为了更清楚的理解本专利技术的内容,将结合附图和实施例详细说明。
[0038]但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本专利技术。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Ignite的分布式发号器实现方法,其特征在于,包括:S1、对Ignite节点进行第一配置以打开Ignite节点的REST API功能;S2、获取应用的第一请求信息,其中所述第一请求包括HTTP请求,所述第一请求信息包括发号器的第一标识信息、步长信息;S3、基于发号器的第一标识信息轮询查询对应的发号器,直到找到对应的发号器,根据步长信息与初始序列号,发号器生成分布式序列号;S4、判断是否满足停止生成分布式序列号的预设条件,如果满足则停止生成分布式序列号。2.根据权利要求1所述的方法,其特征在于,所述方法还包括S5:将所述分布式序列号持久化存储和\或将分布式序列号返回给应用。3.根据权利要求1所述的方法,其特征在于,所述方法还包括S6:S61、基于应用需求信息判断分布式发号器性能是否满足需求;S62、如果不能满足需求,则将新的Ignite节点加入已有的Ignite节点集群。4.根据权利要求1所述的方法,其特征在于,所述步长信息还可以预设于Ignite节点,所述发号器的第一标识信息以键值对的方式存储,其中发号器的第一标识信息为key值。5.根据权利要求4所述的方法,其特征在于,所述S3包括:S31、基于key值查询发号器是否在Ignite节点;;S32、如果不在Ignite节点上,则上述Ignite节点将第一请求信息发送到新的Ignite节点直到找到对应的发号器。6.根据权利要求1所述的方法,其特征在于,所述S3还包括:S301、设置...

【专利技术属性】
技术研发人员:荆梦雨孙炎森徐晓剑滕其武姜涛赵琨李兴张战锋
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1