买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于zookeeper的全局序列生成方法及装置_广东亿迅科技有限公司_201710414958.9 

申请/专利权人:广东亿迅科技有限公司

申请日:2017-06-05

公开(公告)日:2021-04-13

公开(公告)号:CN107247770B

主分类号:G06F16/22(20190101)

分类号:G06F16/22(20190101);G06F16/27(20190101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.13#授权;2017.11.10#实质审查的生效;2017.10.13#公开

摘要:本发明公开一种基于zookeeper的全局序列生成方法及装置,该方法包括:分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;获取zookeeper分布式系统中zookeeper序列节点的分布式锁;根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;将步长序列值异步填充至序列生成器的内存队列;以及从内存队列中选取一序列值作为全局序列,并返回全局序列。本发明的技术方案能够提供唯一全局序列,满足业务需求。

主权项:1.一种基于zookeeper的全局序列生成方法,其特征在于,所述基于zookeeper的全局序列生成方法包括如下步骤:分配多个序列生成器,并为序列生成器所生成序列创建持久化zookeeper序列节点并设置初始值,以为每个序列指定步长、加载因子、初始值以及设置一内存队列,加载因子为内存队中的序列值消耗比例的最大值;获取zookeeper分布式系统中zookeeper序列节点的分布式锁;根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;将步长序列值异步填充至序列生成器的内存队列;以及从内存队列中选取一序列值作为全局序列,并返回全局序列。

全文数据:基于zookeeper的全局序列生成方法及装置技术领域[0001]本发明涉及一种数据库中间件,尤其涉及一种基于zookeeper的全局序列生成方法及装置。背景技术[0002]zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。[0003]目前,由于电信的业务系统的交易量非常庞大,使用分布式数据库作为底层数据存储,因此数据库的自增序列己然不能提供全局唯一的序列。目前的分布式自増序列大部分是根据Zookeeper自身的强一致性和持久化顺序节点的顺序性的特点生成有序序列。每获取一个序列都需要去访问Zookeeper分布式系统并创建新的持久化顺序节点,效率比较低下,不满足于分布式数据库对序列进行快速反应的要求。因此需要提供高效可用的分布式全局序列服务来满足电信庞大的业务量。[0004]有鉴于此,有必要提出对目前数据库自增序列的技术进行进一步的改进。发明内容[0005]为解决上述至少一技术问题,本发明的主要目的是提供一种基于zookeeper的全局序列生成方法。[0006]为实现上述目的,本发明采用的一个技术方案为:提供一种基于zookeeper的全局序列生成方法,包括如下步骤:[0007]分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;[0008]获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0009]根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;[0010]释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;[0011]将步长序列值异步填充至序列生成器的内存队列;以及[0012]从内存队列中选取一序列值作为全局序列,并返回全局序列。[0013]在一具体的实施例中,所述根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值的步骤,具体包括:[0014]判断zookeeper序列节点是否进行初始化,[0015]如果zookeeper序列节点没有初始化,则为每一序列创建持久化zookeeper序列节点并设置初始值,以及根据zooke印er序列节点初始值及步长计算出节点的步长序列值;[0016]如果zookeeper序列节点己初始化,则根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值。[0017]在一具体的实施例中,所述将步长序列值异步填充至序列生成器的内存队列的步骤之后,还包括:[0018]判断内存队中的序列值消耗的比例是否等于加载因子,[0019]如果内存队中的序列值消耗的比例等于加载因子,贝lj获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0020]如果内存队中的序列值消耗的比例不等于加载因子,则从内存队列中选取一序列值作为全局序列,并返回全局序列。[0021]在一具体的实施例中,所述从内存队列中选取一序列值作为全局序列,并返回全局序列的步骤之前,还包括:[0022]判断内存队列中是否存在步长序列值,[0023]如果内存队列中不存在步长序列值,则等待设定时间周期,以重新将步长序列值异步填充至内存队列后,继续判断是否存在步长序列值;[0024]如果内存队列中存在步长序列值,则从内存队列中选取一序列值作为全局序列,并返回全局序列至客户端。[0025]在一具体的实施例中,所述设定时间周期为10ms。[0026]为实现上述目的,本发明采用的另一个技术方案为:提供一种基于zookeeper的全局序列生成装置,包括:[0027]预处理模块,用于分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;[0028]获取模块,用于获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0029]计算模块,用于根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;[0030]释放模块,用于释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;[0031]填充模块,用于将步长序列值异步填充至序列生成器的内存队列;以及[0032]选取模块,用于从内存队列中选取一序列值作为全局序列,并返回全局序列。[0033]在一具体的实施例中,所述计算模块,具体用于:[0034]判断zookeeper序列节点是否进行初始化,[0035]如果zookeeper序列节点没有初始化,则为每一序列创建持久化zookeeper序列节点并设置初始值,以及根据zookeeper序列节点初始值及步长计算出节点的步长序列值;[0036]如果zookeeper序列节点己初始化,则根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值。[0037]在一具体的实施例中,所述基于zookeeper的全局序列生成装置还包括:[0038]第一判断模块,用于判断内存队中的序列值消耗的比例是否等于加载因子,[0039]如果内存队中的序列值消耗的比例等于加载因子,则通过获取模块获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0040]如果内存队中的序列值消耗的比例不等于加载因子,则通过选取模块从内存队列中选取一序列值作为全局序列,并返回全局序列。[0041]在一具体的实施例中,所述基于zookeeper的全局序列生成装置还包括:[0042]第二判断模块,用于判断内存队列中是否存在步长序列值,[0043]如果内存队列中不存在步长序列值,则在等待设定时间周期后,通过填充模块重新将步长序列值异步填充至内存队列,以及继续通过第二判断模块判断是否存在步长序列值;[0044]如果内存队列中存在步长序列值,则通过选取模块从内存队列中选取一序列值作为全局序列,并返回全局序列至客户端。[0045]在一具体的实施例中,所述设定时间周期为10ms。[0046]本发明的技术方案通过分配多个序列生成器,可以满足业务对全局序列的高并发的要求。具体位置:多个序列填充于内存队列中,能够根据客户端的要求取出唯一的序列作为全局序列,故而支持序列高并发高可用的要求。本方案中,从zookeeper访问并操作序列节点过程中,需要利用zookeeper序列节点分步式锁来确保在同一个时间只能有一个序列生成器访问序列节点,以避免多个生成器从zookeeper分布式系统中读取到相同的序列值,造成序列的重复。附图说明[0047]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。[0048]图1为本发明一实施例基于zookeeper的全局序列生成方法的方法流程图;[0049]图2为本发明另一实施例基于zookeeper的全局序列生成方法的方法流程图;[0050]图3为本发明一实施例基于zookeeper的全局序列生成装置的模块方框图;[0051]图4为本发明另一实施例基于zookeeper的全局序列生成装置的模块方框图。[0052]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0053]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[00M]^要说明,本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。[0055]为了更好地理解本发明的技术方案,下面对全局序列、步长、加载因子进行解释,具体如下:[0056]全局序列:在分布式系统中提供的全局唯一的序列。[0057]步长:从Zookepper中获取一个序列值,加上这个步长缓存到序列生成器的内存队列中。[0058]加载因子:当序列生成器内存的序列用到一定的比例的时候,异步从zookeeper中重新加载放到内存,值一般设置在0-1•〇之间。[0059]请参照图1,在本发明实施例中,该基于zooke印er的全局序列生成方法,包括如下步骤:[0060]步骤S10、分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;[0061]步骤S20、获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0062]步骤S30、根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;[0063]步骤S40、释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;[0064]步骤S50、将步长序列值异步填充至序列生成器的内存队列;以及[0065]步骤S60、从内存队列中选取一序列值作为全局序列,并返回全局序列。[0066]本实施例中,为满足高并发高的业务要求,需要分配多个序列生成器,以生成多个序列。为了避免多个序列生成器从zookeeper分布式系统中读取到相同的序列值,造成序列的重复,在从zookeeper访问并操作序列节点过程中,需要利用zookeeper序列节点的分步式锁来确保在同一个时间只能有一个序列生成器访问序列节点,并在解锁的情况下,zookeeper序列节点对应的步长序列值可异步填充至内存队列,然后从内存队列中选取一序列作为全局序列返回至客户端,如此,能够实现序列高并发高可用的业务要求。[0067]本发明的技术方案通过分配多个序列生成器,可以满足业务对全局序列的高并发的要求。具体位置:多个序列填充于内存队列中,能够根据客户端的要求取出唯一的序列作为全局序列,故而支持序列高并发高可用的要求。本方案中,从z〇〇keeper访问并操作序列节点过程中,需要利用zookeeper序列节点分步式锁来确保在同一个时间只能有一个序列生成器访问序列节点,以避免多个生成器从zookeeper分布式系统中读取到相同的序列值,造成序列的重复。[0068]请参照图2,在一具体的实施例中,所述根据zookeeper序列节点的当前值及步长计算出zooke印er序列节点的步长序列值的步骤S30,具体包括:[0069]判断zookeeper序列节点是否进行初始化,[0070]如果zookeeper序列节点没有初始化,则为每一序列创建持久化zookeeper序列节点并设置初始值,以及根据zooke印er序列节点初始值及步长计算出节点的步长序列值;[0071]如果zookeeper序列节点己初始化,则根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值。[0072]本实施例中,通过对zookeeper序列节点的初始化状态进行判断,在zookeeper序列节点己初始化时,可计算出zookeeper序列节点的步长序列值,该步长序列值为zookeeper序列节点当如值与步长之和;在z〇〇keeper序列T1点没有初始化时,需要先对zookeeper序列节点初始化,然后根据zookeeper序列节点初始化值与步长之和计算出zookeeper序列节点的步长序列值。在后一条件中,创建持久化zookeeper序列节点,支持序列重置和序列持久化的要求。[0073]请参照图2,在一具体的实施例中,所述将步长序列值异步填充至序列生成器的内存队列的步骤S40之后,还包括:[0074]判断内存队中的序列值消耗的比例是否等于加载因子,[0075]如果内存队中的序列值消耗的比例等于加载因子,则获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0076]如果内存队中的序列值消耗的比例不等于加载因子,则从内存队列中选取一序列值作为全局序列,并返回全局序列。[0077]本实施例中,在内存队列的序列消耗比例等于加载因子时,说明内存队列中的步长序列值已消耗完,需要重新获取步长序列值,因此,在此条件下,跳转到继续获取zookeeper分布式系统中zookeeper序列节点的分布式锁的步骤;在内存队列的值已经被消耗完时,则可以循环等待,定时检查内存队列的长度,如果存在即返回序列值,如此,以为客户端提供唯一的全局序列。[0078]在一具体的实施例中,所述从内存队列中选取一序列值作为全局序列,并返回全局序列的步骤S60之前,还包括:[0079]判断内存队列中是否存在步长序列值,[0080]如果内存队列中不存在步长序列值,则等待设定时间周期,以重新将步长序列值异步填充至内存队列后,继续判断是否存在步长序列值;[0081]如果内存队列中存在步长序列值,则从内存队列中选取一序列值作为全局序列,并返回全局序列至客户端。[0082]本实施例中,通过对内存队列中的步长序列值进行判断,在内存队列中存在步长序列值时,可以直接从内存队列中随机或顺序获取唯一的全局序列;在内存队列中不存在步长序列值时,可能是存在延时导致未出结果,可以等待设定时间周期,然后再次判断内存队列中是否存在步长序列值,直到存在时从内存队列中随机或顺序获取唯一的全局序列。[0083]进一步的,所述设定时间周期为10ms。可以理解的是,该时间周期可以根据实际的要求来设定,10ms仅作为本实施例一优选方案,其它的时间周期也是可行方案。[0084]请参照图3,在本发明的实施例中,该基于zookeeper的全局序列生成装置,包括:[0085]预处理模块10,用于分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;[0086]获取模块20,用于获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0087]计算模块30,用于根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;[0088]释放模块40,用于释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;[0089]填充模块50,用于将步长序列值异步填充至序列生成器的内存队列;以及[0090]选取模块60,用于从内存队列中选取一序列值作为全局序列,并返回全局序列。[0091]本实施例中,为满足高并发高的业务要求,通过该预处理模块1〇,可以分配多个序列生成器,以生成多个序列。为了避免多个序列生成器从zookeeper分布式系统中读取到相同的序列值,造成序列的重复,在从zookeeper访问并操作序列节点过程中,通过获取模块20,可以获取需要利用zookeeper序列节点的分步式锁来确保在同一个时间只能有一个序列生成器访问序列节点,然后通过释放模块4〇,在解锁的情况下,zookeeper序列节点对应的步长序列值可异步填充至内存队列,最后通过选取模块60,可以从内存队列中选取一序列作为全局序列返回至客户端,如此,能够实现序列高并发高可用的业务要求。[0092]请参照图4,在一具体的实施例中,所述计算模块3〇,具体用于:[0093]判断zookeeper序列节点是否进彳丁初始化,[0094]如果zookeeper序列节点没有初始化,则为每一序列创建持久化zookeeper序列节点并设置初始值,以及根据zookeeper序列节点初始值及步长计算出节点的步长序列值;[0095]如果zookeeper序列节点已初始化,则根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值。[0096]本实施例中,该计算模块30具体可以对zookeeper序列节点的初始化状态进行判断,在zookeeper序列节点已初始化时,可计算出zookeeper序列节点的步长序列值,该步长序列值为zookeeper序列节点当前值与步长之和;在zookeeper序列节点没有初始化时,需要先对zookeeper序列节点初始化,然后根据zookeeper序列节点初始化值与步长之和计算出zookeeper序列节点的步长序列值。在后一条件中,创建持久化zookeeper序列节点,支持序列重置和序列持久化的要求。[0097]在一具体的实施例中,所述基于zookeeper的全局序列生成装置还包括:[0098]第一判断模块70,用于判断内存队中的序列值消耗的比例是否等于加载因子,[0099]如果内存队中的序列值消耗的比例等于加载因子,则通过获取模块20获取zookeeper分布式系统中zookeeper序列节点的分布式锁;[0100]如果内存队中的序列值消耗的比例不等于加载因子,则通过选取模块60从内存队列中选取一序列值作为全局序列,并返回全局序列。[0101]本实施例中,通过第一判断模块70,在内存队列的序列消耗比例等于加载因子时,说明内存队列中的步长序列值己消耗完,需要重新获取步长序列值,因此,在此条件下,跳转到继续获取zookeeper分布式系统中zookeeper序列节点的分布式锁的步骤;在内存队列的值已经被消耗完则循环等待,定时检查内存队列的长度,如此,为客户端提供唯一的全局序列。[0102]在一具体的实施例中,所述基于zookeeper的全局序列生成装置还包括:[0103]第二判断模块80,用于判断内存队列中是否存在步长序列值,[0104]如果内存队列中不存在步长序列值,则在等待设定时间周期后,通过填充模块50重新将步长序列值异步填充至内存队列,以及继续通过第二判断模块80判断是否存在步长序列值;[0105]如果内存队列中存在步长序列值,则通过选取模块60从内存队列中选取一序列值作为全局序列,并返回全局序列至客户端。[0106]本实施例中,通过第二判断模块80,可以对内存队列中的步长序列值进行判断,在内存队列中存在步长序列值时,通过选取模块60可以直接从内存队列中随机或顺序获取唯一的全局序列;在内存队列中不存在步长序列值时,可能是存在延时导致未出结果,可以等待设定时间周期,然后再次判断内存队列中是否存在步长序列值,直到存在时,通过选取模块60从内存队列中随机或顺序获取唯一的全局序列。[0107]在一具体的实施例中,所述设定时间周期为l〇ms。可以理解的是,该时间周期可以根据实际的要求来设定,10ms仅作为本实施例一优选方案,其它的时间周期也是可行方案。[0108]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或首接%在其他相关的技术领域均包括在本发明的专利保护范围内。’一^

权利要求:1.一种基于zookeeper的全局序列生成方法,其特征在于,所述基于zookeeper的全局序列生成方法包括如下步骤:分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;获取zookeeper分布式系统中zookeeper序列节点的分布式锁;根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;将步长序列值异步填充至序列生成器的内存队列;以及从内存队列中选取一序列值作为全局序列,并返回全局序列。2.如权利要求1所述的基于zookeeper的全局序列生成方法,其特征在于,所述根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值的步骤,具体包括:判断zookeeper序列节点是否进行初始化,如果zookeeper序列节点没有初始化,则为每一序列创建持久化zooke印er序列节点并设置初始值,以及根据zo〇keeper序列节点初始值及步长计算出节点的步长序列值;如果zookeeper序列节点已初始化,则根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值。3.如权利要求1所述的基于zookeeper的全局序列生成方法,其特征在于,所述将步长序列值异步填充至序列生成器的内存队列的步骤之后,还包括:判断内存队中的序列值消耗的比例是否等于加载因子,如果内存队中的序列值消耗的比例等于加载因子,则获取zookeeper分布式系统中zookeeper序列节点的分布式锁;如果内存队中的序列值消耗的比例不等于加载因子,则从内存队列中选取一序列值作为全局序列,并返回全局序列。4.如权利要求3所述的基于zookeeper的全局序列生成方法,其特征在于,所述从内存队列中选取一序列值作为全局序列,并返回全局序列的步骤之前,还包括:判断内存队列中是否存在步长序列值,如果内存队列中不存在步长序列值,则等待设定时间周期,以重新将步长序列值异步填充至内存队列后,继续判断是否存在步长序列值;如果内存队列中存在步长序列值,则从内存队列中选取一序列值作为全局序列,并返回全局序列至客户端。5.如权利要求4所述的基于zookeeper的全局序列生成方法,其特征在于,所述设定时间周期为l〇ms。6.一种基于zookeeper的全局序列生成装置,其特征在于,所述基于zookeeper的全局序列生成装置包括:预处理模块,用于分配多个序列生成器,并对序列生成器所生成序列进行初始化,以为每个序列指定步长、加载因子、初始值以及设置一内存队列;获取模块,用于获取zookeeper分布式系统中zookeeper序列节点的分布式锁;计算模块,用于根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值;释放模块,用于释放zookeeper序列节点的分布式锁,得到zookeeper序列节点对应的步长序列值;填充模块,用于将步长序列值异步填充至序列生成器的内存队列;以及选取模块,用于从内存队列中选取一序列值作为全局序列,并返回全局序列。7.如权利要求6所述的基于zookeeper的全局序列生成装置,其特征在于,所述计算模块,具体用于:判断zookeeper序列节点是否进行初始化,如果zookeeper序列节点没有初始化,则为每一序列创建持久化zookeeper序列节点并设置初始值,以及根据zookeeper序列节点初始值及步长计算出节点的步长序列值;如果zookeeper序列节点已初始化,则根据zookeeper序列节点的当前值及步长计算出zookeeper序列节点的步长序列值。8.如权利要求6所述的基于zookeeper的全局序列生成装置,其特征在于,所述基于zookeeper的全局序列生成装置还包括:第一判断模块,用于判断内存队中的序列值消耗的比例是否等于加载因子,如果内存队中的序列值消耗的比例等于加载因子,贝U通过获取模块获取zookeeper分布式系统中zookeeper序列节点的分布式锁;如果内存队中的序列值消耗的比例不等于加载因子,则通过选取模块从内存队列中选取一序列值作为全局序列,并返回全局序列。9.如权利要求8所述的基于zookeeper的全局序列生成装置,其特征在于,所述基于zookeeper的全局序列生成装置还包括:第二判断模块,用于判断内存队列中是否存在步长序列值,如果内存队列中不存在步长序列值,则在等待设定时间周期后,通过填充模块重新将步长序列值异步填充至内存队列,以及继续通过第二判断模块判断是否存在步长序列值;如果内存队列中存在步长序列值,则通过选取模块从内存队列中选取一序列值作为全局序列,并返回全局序列至客户端。10.如权利要求9所述的基于zookeeper的全局序列生成装置,其特征在于,所述设定时间周期为l〇ms。

百度查询: 广东亿迅科技有限公司 基于zookeeper的全局序列生成方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。