【技术实现步骤摘要】
一种包含业务语义的分布式ID生成及业务语义获取方法
[0001]本专利技术涉及分布式系统
,尤其涉及一种包含业务语义的分布式ID生成及业务语义获取方法。
技术介绍
[0002]ID是分布式系统中数据节点的唯一标识,传统的做法是使用通用唯一识别码(UniversallyUniqueIdentifier,UUID)或者数据库自增ID,但是上述两种方式都存在着一些固有的弊端。
[0003]如数据库自增ID,虽然ID短小精炼、趋势递增,但是无法做到全局唯一,容易与其他ID混淆,在分布式环境,尤其是在分域集群部署环境下难以使用;
[0004]再如UUID,虽然UUID生成的ID效率高且全局唯一,但是生成的ID过长,且没有业务语义信息,因此,无法根据业务语义信息对分布式系统中数据节点难以建立索引,并查询。
技术实现思路
[0005]鉴于此,本专利技术实施例提供了一种包含业务语义的分布式ID生成及业务语义获取方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷。
[0006]本专利技术的一个方面提供了一种包含业务语义的分布式ID生成及业务语义获取方法,分布式系统包括多个数据节点,业务语义包括数据节点所处的集群位置、数据节点的机器号、数据节点的业务类型和业务流水号,该方法包括ID生成步骤和ID解析步骤,所述ID生成步骤在分布式系统的第一数据节点进行,所述ID解析步骤在分布式系统的第二数据节点进行,
[0007]所述ID生成步骤包括:
[0008]对所述集群位置、业务类 ...
【技术保护点】
【技术特征摘要】
1.一种包含业务语义的分布式ID生成及业务语义获取方法,其特征在于,分布式系统包括多个数据节点,业务语义包括数据节点所处的集群位置、数据节点的机器号、数据节点的业务类型和业务流水号,该方法包括ID生成步骤和ID解析步骤,所述ID生成步骤在分布式系统的第一数据节点进行,所述ID解析步骤在分布式系统的第二数据节点进行,所述ID生成步骤包括:对所述集群位置、业务类型进行十进制编号,得到第一集群号和第一业务类型号;分别将所述第一集群号、机器号、第一业务类型号和业务流水号转化为二进制编号,得到第二集群号、第二机器号、第二业务类型号和第二业务流水号;获取将所述第一集群号、机器号、第一业务类型号和业务流水号转化为二进制编号的时间为第一时间,将所述第一时间与预设的基准时间作差,得到第一时长,将所述第一时长进行二进制编号,得到时间号;将所述第二集群号、时间号、第二机器号、第二业务类型号和第二业务流水号根据预设的ID模板进行排布,得到第一分布式ID;对第一分布式ID进行编码得到第二分布式ID;所述ID解析步骤包括;接收所述第二分布式ID,对所述第二分布式ID进行解码得到第一分布式ID,获取所述第一分布式ID中的第二集群号、时间号、第二机器号、第二业务类型号和第二业务流水号。2.根据权利要求1所述的方法,其特征在于,所述ID模板包括集群位、时间位、机器位、业务位和流水号位,将所述第二集群号、时间号、第二机器号、第二业务类型号和第二业务流水号根据预设的ID模板进行排布的步骤包括:将第二集群号填入集群位,将时间号填入时间位,将第二机器号填入机器位,将第二业务类型号填入业务位,将第二业务流水号填入流水号位。3.根据权利要求2所述的方法,其特征在于,所述时间位预设为第一位数,机器位预设为第二位数,业务位预设为第三位数,流水号位预设为第四位数,将时间号填入时间位的步骤包括:判断所述第一位数是否大于所述时间号的位数,若是,则将第一位数与时间号的位数作差,得到第一空位数,在所述时间号左侧填充第一空位数个0,使时间位的位数与时间号的位数相等;将第二机器号填入机器位的步骤包括:判断所述第二位数是否大于所述第二机器号的位数,若是,则将第二位数与第二机器号的位数作差,得到第二空位数,在所述第二机器号左侧填充第二空位数个0,使机器位的位数与第二机器号的位数相等;将第二业务类型号填入业务位的步骤包括:判断所述第三位数是否大于所述第二业务类型号的位数,若是,则将第三位数与第二业务类型号的位数作差,得到第三空位数,在所述第二业务类型号左侧填充第三空位数个0,使业务位的位数与第二业务类型号的位数相等;将第二业务流水号填入流水号位的步骤包括:判断所述第四位数是否大于所述第二业务流水号的位数,若是,则将第四位数与第二业务流水号的位数作差,得到第四空位数,在所述第二业务流水号左侧填充第四空位数个0,使流水号位的位数与第二业务流水号的位数相等。4.根据权利要求3所述的方法,其特征在于,将所述第二集群号、时间号、第二机器号、第二业务类型号和第二业务流水号根据预设的ID模板进行排布的步骤还包括:
将所述时间号左移第二移动位...
【专利技术属性】
技术研发人员:吉祥,屠志鹏,蒋明鹏,张晨宇,周烁,李荣宽,陈洪冰,
申请(专利权)人:电科云北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。