CN110196860B - 唯一标识分配方法及装置、电子设备、存储介质 - Google Patents

唯一标识分配方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN110196860B
CN110196860B CN201810326471.XA CN201810326471A CN110196860B CN 110196860 B CN110196860 B CN 110196860B CN 201810326471 A CN201810326471 A CN 201810326471A CN 110196860 B CN110196860 B CN 110196860B
Authority
CN
China
Prior art keywords
unique
identifier
unique identifier
node
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810326471.XA
Other languages
English (en)
Other versions
CN110196860A (zh
Inventor
甘恒通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810326471.XA priority Critical patent/CN110196860B/zh
Publication of CN110196860A publication Critical patent/CN110196860A/zh
Application granted granted Critical
Publication of CN110196860B publication Critical patent/CN110196860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种唯一标识分配方法、唯一标识分配装置、电子设备及计算机可读存储介质,属于数据处理技术领域。该方法包括:接收从源节点下发的为目标信息分配唯一标识的标识分配任务;从规则节点获取标识号段;在所述标识号段内获取目标唯一标识并分配至所述目标信息。本发明可以降低唯一标识分配方法中对数据库的依赖度,提高系统的读写性能。

Description

唯一标识分配方法及装置、电子设备、存储介质
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种唯一标识分配方法、唯一标识分配装置、电子设备以及计算机可读存储介质。
背景技术
为了方便进行信息辨识,经常需要为信息分配唯一标识。例如,GUID(GloballyUnique Identifier,全局唯一标识符)是一种字母数字标识符,可用于对信息进行唯一性标识,已经广泛应用于数据分析、统计、检索系统中。
现有技术分配GUID多数是通过数据库系统实现的。以MySQL(关系型数据库管理系统)举例,每次GUID分配业务需要使用特定的SQL(Structured Query Language,结构化查询语言)从MySQL中读写得到GUID;具体可在MySQL中给字段设置auto_increment_increment(MySQL配置字段递增量的语句)和auto_increment_offset(MySQL配置字段起点的语句)使GUID通过自增的方式生成与分配。
上述技术方案中整个GUID分配系统强烈的依赖于数据库,当数据库异常时整个GUID分配系统将不可用,这属于致命问题。通过配置主从复制机制,可以尽可能的增加可用性,但是主从复制存在时间延迟,如果主从切换时存在不一致现象,则可能会导致重复发号。同时,GUID分配系统的性能限制于单台数据库系统的读写性能上;对于单机系统而言存在性能不足问题,并且多个分配请求并发时存在资源竞争的风险。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种唯一标识分配方法、唯一标识分配装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的唯一标识分配方法中过于依赖数据库的问题。
根据本发明的一个方面,提供一种唯一标识分配方法,包括:接收从源节点下发的为目标信息分配唯一标识的标识分配任务;从规则节点获取标识号段;在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中,所述方法还包括:从所述规则节点获取所述标识号段的端点唯一标识;在所述标识号段内获取目标唯一标识并分配至所述目标信息包括:在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息;以及将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括连续的多个唯一标识;对所述端点唯一标识进行预设偏移得到目标唯一标识包括:将所述端点唯一标识加一得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括离散的多个唯一标识;对所述端点唯一标识进行预设偏移得到目标唯一标识包括:将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述方法还包括:向所述规则节点发送状态表征信息;当接收到所述规则节点根据所述状态表征信息判断状态异常而发送的收回标识号段指令时,向所述规则节点退回所述标识号段。
在本发明的一种示例性实施例中,在所述标识号段内获取目标唯一标识并分配至所述目标信息包括:查询是否存在所述目标信息与唯一标识的映射关系;如果未查询到所述目标信息与任一唯一标识的映射关系,则在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中,查询是否存在所述目标信息与唯一标识的映射关系包括:在本地缓存查询是否存在所述目标信息与唯一标识的映射关系;如果在本地缓存未查询到所述目标信息与任一唯一标识的映射关系,则在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系;如果在所述预设数据库查询到所述目标信息与唯一标识的映射关系,则将所述目标信息与唯一标识的映射关系写入所述本地缓存。
在本发明的一种示例性实施例中,所述方法还包括:将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库以及本地缓存。
在本发明的一种示例性实施例中,所述方法还包括:向控制节点发送状态表征信息;当接收到所述控制节点根据所述状态表征信息判断状态异常而发送的重启指令时,执行所述重启指令。
在本发明的一种示例性实施例中,所述目标信息包括国际移动设备识别码,所述唯一标识包括全局唯一标识符。
根据本发明的一个方面,提供一种基于流式计算系统的唯一标识分配方法,包括:源节点响应针对目标信息的标识分配请求,将为所述目标信息分配唯一标识的标识分配任务下发至一工作节点;所述工作节点从规则节点获取标识号段;所述工作节点在接收所述标识分配任务后,在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中,所述方法还包括:所述工作节点从所述规则节点获取所述标识号段的端点唯一标识;在所述标识号段内获取目标唯一标识并分配至所述目标信息包括:在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息;以及将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括连续的多个唯一标识;对所述端点唯一标识进行预设偏移得到目标唯一标识包括:将所述端点唯一标识加一得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括离散的多个唯一标识;对所述端点唯一标识进行预设偏移包括:将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述方法还包括:所述工作节点向所述规则节点发送状态表征信息;如果所述规则节点根据状态表征信息判断所述工作节点异常,则将所述工作节点获取的标识号段收回。
在本发明的一种示例性实施例中,所述方法还包括:所述规则节点从所述预设数据库获取所述标识号段以及所述端点唯一标识;及/或所述规则节点接收输入的所述标识号段以及所述端点唯一标识并写入所述预设数据库。
在本发明的一种示例性实施例中,将为所述目标信息分配唯一标识的标识分配任务下发至所述多个工作节点中的一工作节点包括:将为同一所述目标信息分配唯一标识的标识分配任务固定下发至所述多个工作节点中的同一工作节点。
在本发明的一种示例性实施例中,将为同一所述目标信息分配唯一标识的标识分配任务固定下发至所述多个工作节点中的同一工作节点包括:通过哈希转发方式,将为同一所述目标信息分配唯一标识的标识分配任务固定下发至所述多个工作节点中的同一工作节点。
在本发明的一种示例性实施例中,在所述标识号段内获取目标唯一标识并分配至所述目标信息包括:查询是否存在所述目标信息与唯一标识的映射关系;如果未查询到所述目标信息与任一唯一标识的映射关系,则在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中,查询是否存在所述目标信息与唯一标识的映射关系包括:在本地缓存查询是否存在所述目标信息与唯一标识的映射关系;如果在本地缓存未查询到所述目标信息与任一唯一标识的映射关系,则在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系;如果在所述预设数据库查询到所述目标信息与唯一标识的映射关系,则将所述目标信息与唯一标识的映射关系写入所述本地缓存。
在本发明的一种示例性实施例中,所述方法还包括:将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库以及本地缓存。
在本发明的一种示例性实施例中,所述流式计算系统还包括控制节点;所述方法还包括:所述控制节点获取所述工作节点的状态,并在所述工作节点的状态异常时重启所述工作节点。
在本发明的一种示例性实施例中,所述控制节点包括一个主规则节点以及至少一个备规则节点;所述方法还包括:所述主规则节点发送状态表征信息与网络地址信息至所述预设数据库;所述备规则节点实时从所述预设数据库读取所述主规则节点的状态信息,判断所述主规则节点是否异常;所述备规则节点在判断所述主规则节点异常时,向所述主规则节点的地址发起CAS操作,并在CAS操作成功后升级为主规则节点。
在本发明的一种示例性实施例中,所述目标信息包括国际移动设备识别码,所述唯一标识包括全局唯一标识符。
根据本发明的一个方面,提供一种唯一标识分配装置,应用于流式计算系统中的工作节点,所述装置包括:源节点交互模块810,用于接收从源节点下发的为目标信息分配唯一标识的标识分配任务;规则节点交互模块820,用于从规则节点获取标识号段;唯一标识获取模块830,用于在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中,所述规则节点交互模块用于从所述规则节点获取所述标识号段的端点唯一标识;所述唯一标识获取模块用于在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息,以及将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括连续的多个唯一标识;所述唯一标识获取模块用于将所述端点唯一标识加一得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括离散的多个唯一标识;所述唯一标识获取模块用于将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述规则节点交互模块用于向所述规则节点发送状态表征信息,以及当接收到所述规则节点根据所述状态表征信息判断状态异常而发送的收回标识号段指令时,向所述规则节点退回所述标识号段。
在本发明的一种示例性实施例中,所述唯一标识获取模块包括:映射查询单元,用于查询是否存在所述目标信息与唯一标识的映射关系;标识号段处理单元,用于当未查询到所述目标信息与任一唯一标识的映射关系时,在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中,所述映射查询单元用于在本地缓存查询是否存在所述目标信息与唯一标识的映射关系,以及当在本地缓存未查询到所述目标信息与任一唯一标识的映射关系时,在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系;所述唯一标识获取模块包括:映射写入单元,用于当在所述预设数据库查询到所述目标信息与唯一标识的映射关系时,将所述目标信息与唯一标识的映射关系写入所述本地缓存。
在本发明的一种示例性实施例中,所述唯一标识获取模块包括:映射写入单元,用于将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库以及本地缓存。
在本发明的一种示例性实施例中,所述唯一标识分配装置包括:控制节点交互模块,用于向控制节点发送状态表征信息,以及当接收到所述控制节点根据所述状态表征信息判断状态异常而发送的重启指令时,执行所述重启指令。
在本发明的一种示例性实施例中,所述目标信息包括国际移动设备识别码,所述唯一标识可以包括全局唯一标识符。
根据本发明的一个方面,提供一种基于流式计算系统的唯一标识分配系统,包括:源节点,用于响应针对目标信息的标识分配请求,将为所述目标信息分配唯一标识的标识分配任务下发至一工作节点;规则节点,用于从预设数据库获取标识号段,并向所述工作节点分配所述标识号段;以及所述工作节点,用于在接收所述标识分配任务后,在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在本发明的一种示例性实施例中:所述规则节点还用于从所述预设数据库获取所述标识号段的端点唯一标识,并向所述工作节点分配所述端点唯一标识;所述工作节点还用于在所述标识号段内对所述端点唯一标识进行预设偏移得到所述目标唯一标识,以及将所述端点唯一标识更新为所述目标唯一标识并写入所述预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在本发明的一种示例性实施例中,所述标识号段包括连续的多个唯一标识;所述工作节点包括:唯一标识获取模块,用于将所述端点唯一标识加一,从而得到所述目标唯一标识。
在本发明的一种示例性实施例中:所述标识号段包括离散的多个唯一标识;所述工作节点包括:唯一标识获取模块,用于将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
在本发明的一种示例性实施例中,所述源节点包括:任务分配模块,用于将所述目标信息分组,使为同一所述目标信息分配唯一标识的标识分配任务固定下发至所述多个工作节点中的同一工作节点。
在本发明的一种示例性实施例中,所述任务分配模块用于对所述目标信息进行哈希转发,使为同一所述目标信息分配唯一标识的标识分配任务固定下发至所述多个工作节点中的同一工作节点。
在本发明的一种示例性实施例中,所述工作节点还包括:状态表征模块,用于向所述规则节点发送状态表征信息,以便于所述规则节点在根据所述状态表征信息判断所述工作节点异常时,将所述工作节点获取的标识号段收回。
在本发明的一种示例性实施例中,所述工作节点还包括:本地缓存,用于缓存所述目标信息与所述目标唯一标识的映射关系,以便于所述工作节点查询及调取。
在本发明的一种示例性实施例中,所述规则节点包括:规则写入模块,用于接收输入的所述标识号段以及所述端点唯一标识并写入所述预设数据库。
在本发明的一种示例性实施例中,还包括:控制节点,用于获取所述工作节点的状态,并在所述工作节点的状态异常时重启所述工作节点。
在本发明的一种示例性实施例中,所述规则节点包括一个主规则节点以及至少一个备规则节点;所述主规则节点用于发送状态信息与地址信息至所述预设数据库;所述备规则节点用于实时从所述预设数据库读取所述主规则节点的状态信息,在判断所述主规则节点异常时,向所述主规则节点的地址发起CAS操作,并在CAS操作成功后升级为主规则节点。
在本发明的一种示例性实施例中,所述目标信息包括国际移动设备识别码,所述唯一标识包括全局唯一标识符。
根据本发明的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的唯一标识分配方法。
根据本发明的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的唯一标识分配方法。
本发明示例性实施例提供的技术方案可以包括以下有益效果:
本发明示例性实施例的唯一标识分配方法中,流式计算系统的工作节点从规则节点获取标识号段,并在该标识号段中获取目标唯一标识以完成分配。一方面,工作节点在分配唯一标识时不需要直接访问数据库,从而改变了传统方案中每次请求分配时都从数据库读写的模式,降低了对数据库的依赖度,保证了在数据库异常时也可以正常分配唯一标识。另一方面,流式计算系统中可以通过增加工作节点数量提高系统容量与处理目标信息的能力,使得唯一标识分配系统的性能不受限于单台数据库的读写性能且并发性能更优,同时也提升了系统的可运维性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出一种唯一标识分配系统的架构图。
图2示意性示出一种唯一标识分配方法的流程图。
图3示意性示出另一种唯一标识分配方法的流程图。
图4示意性示出另一种唯一标识分配系统的架构图。
图5示意性示出一种唯一标识分配方法的流程图。
图6示意性示出另一种唯一标识分配方法的流程图。
图7示意性示出一种唯一标识分配方法的交互流程图。
图8示意性示出一种唯一标识分配装置的结构框图。
图9示意性示出一种用于实现上述唯一标识分配方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。本示例实施方式中首先提供了一种唯一标识分配方法,可以应用于流式计算系统的工作节点。其中,所述唯一标识是指特定范围内可指示唯一性身份的可辨识信息,可以是GUID、UUID(Universally Unique Identifier,通用唯一识别码)等广域的唯一可辨识信息,也可以是数字账号、日志序列编号等局部的唯一可辨识信息。所述流式计算系统通常可以包括源节点以及与源节点连接的多个工作节点,例如Storm、Spark或Samza等流式平台,在运行任务时,可通过源节点将任务分配到一系列工作节点上并行运行。
在一示例性实施例中,用于唯一标识分配的流式计算系统架构可以如图1所示,其中,目标信息为外部输入的请求分配唯一标识的信息,可以来源于外部的消息中间件,或分布式数据交换系统中下级数据库的缓存等;预设数据库114可以是非关系型数据库,也可以是关系型数据库,可以设置于一台服务器上,也可以分布于多台计算机组成的数据库网络中,预设数据库114中存储有全部唯一标识的数据及映射关系,映射关系是指已分配的唯一标识的对应关系,流式计算系统110可以包括源节点111、工作节点112及规则节点113,规则节点113负责将预设数据库114中的标识号段按照预设规则分配至各工作节点112。
需要说明的是,上述源节点、工作节点、规则节点代表了流式计算系统中负责特定业务的模块,在不同的流式计算系统中,其名称会有差异。例如,在Storm流式计算系统用于实时计算的图状结构称为topology(拓扑),一个topology中包括spout和bolt两种角色,其中spout负责接收外部数据,同时将数据流以tuple(元组)的形式发送出去,是系统中的源节点,而bolt接收tuple,负责与业务相关的数据处理,是系统中的工作节点。在Samza流式计算系统中,负责接收外部数据的源节点称为Consumer,负责处理业务数据的工作节点称为Task。无论是哪种流式计算系统,源节点、工作节点与规则节点都可以是各种终端或服务器等设备,例如在一个本地化的流式计算系统中,源节点可以是本地服务器,工作节点可以是本地局域网中的计算机,规则节点可以是应用程序的规则引擎;或者在一个区域性网络的流式计算系统中,源节点可以是中心服务器,工作节点可以是接入网络的计算机与手机,规则节点可以是云端程序等等。此外,规则节点的业务亦可集成于工作节点上,使系统无需单独设立的规则节点;而本示例性实施例中规则节点与工作节点分离有利于向并行的工作节点同时分配标识号段与端点唯一标识,可减轻数据库的运行压力。
如图2所示,本实施例中基于上述流式计算系统的工作节点的唯一标识分配方法可以包括以下步骤:
步骤S210,接收从源节点下发的为目标信息分配唯一标识的标识分配任务。其中,为所述目标信息分配唯一标识可以是为一移动设备的IMEI(International MobileEquipment Identity,国际移动设备识别码)请求分配GUID,也可以是为一移动用户的手机号码请求分配应用程序的数字账号等。源节点作为系统与外部对接的节点,可以接收全部的目标信息,之后还可以对目标信息进行解析,将其转换为可被工作节点读取的标识分配任务,并下发至工作节点。通常为了保障系统调度目标信息及安排标识分配任务的逻辑,工作节点可以不直接处理目标信息。
需要说明的是,在本发明其他示例性实施例中,所述目标信息还可以包括媒体访问控制MAC地址、唯一设备标识符UDID、应用APP信息、移动用户号码或移动终端行为日志等,唯一标识还可以包括通用唯一识别码UUID、应用APP数字账号等,这同样属于本发明的保护范围。
步骤S220,从规则节点获取标识号段。
其中,标识号段是将预设数据库中的全部唯一标识按照一定的分段规则进行分段后得到的,该分段规则可以是系统中预设的分段逻辑,也可以是外部输入的分段结果。通常,规则节点向工作节点分配的标识号段可以包括至少一个未分配的唯一标识。
步骤S230,在所述标识号段内获取目标唯一标识并分配至所述目标信息。
由于标识号段内包括了至少一个未分配的唯一标识,工作节点可以按照一定的顺序将未分配的唯一标识指定为目标唯一标识,从而完成分配,例如可以按照递增顺序或递减顺序逐一分配,也可以在未分配的唯一标识中随机分配等,本实施例对此不做特别限定。
在本示例性实施例的唯一标识分配方法中,流式计算系统的工作节点从规则节点获取标识号段,并在该标识号段中获取目标唯一标识以完成分配,一方面,工作节点在分配唯一标识时不需要直接访问数据库,从而改变了传统方案中每次请求分配时都从数据库读写的模式,降低了对数据库的依赖度,保证了在数据库异常时也可以正常分配唯一标识。另一方面,流式计算系统中可以通过增加工作节点数量提高系统容量与处理目标信息的能力,使得唯一标识分配系统的性能不受限于单台数据库的读写性能且并发性能更优,同时也提升了系统的可运维性。
此外,在本示例性实施例中,由于引入了规则节点,则标识号段的相关信息可以由规则节点维护。这样,在工作节点请求时,规则节点可以不通过预设数据库而直接分配标识号段,分配速率更快,并且可以同时处理多个工作节点的请求,提高了对于并发请求的处理效率。同时,规则节点可以设定唯一标识的分配规则,除了唯一标识单调自增外,还可以实现其他方式的分配,因此可根据业务场景对唯一标识的分配规则进行定制,适用范围更广。
为了便于唯一标识快速分配且保证分配的唯一性,在一示例性实施例中,如图3所示,所述唯一标识分配方法还可以包括:
步骤S310,从所述规则节点获取所述标识号段的端点唯一标识。
本示例性实施例中,端点唯一标识可以是标识号段中最近分配的唯一标识,其用于指示标识号段中的分配进度。每个标识号段中都可以有一个端点唯一标识。标识号段按照其中唯一标识的分配情况,可以分为三种状态类型:全部未分配、全部已分配及部分未分配。对于部分未分配的唯一标识分段,端点唯一标识可以是其中已分配的最大唯一标识,例如某唯一标识分段可以包含5个十六进制的唯一标识:3128、3129、312A、312B、312C,其中3128、3129、312A都已分配,312B、312C未分配,则端点唯一标识可以是312A。对于全部已分配的唯一标识分段,端点唯一标识可以是其中的最大唯一标识,以3128、3129、312A、312B、312C为例,如果5个唯一标识全部已分配,则端点唯一标识可以是312C。对于全部未分配的唯一标识分段,端点唯一标识可以是一计算值,也可以是一空值,用以表示该唯一标识分段中全部唯一标识都未分配,例如3128、3129、312A、312B、312C的唯一标识分段中,如果5个唯一标识全部未分配,则端点唯一标识可以是3127(通过最小的唯一标识3128-1计算得到),也可以是null,null的处理方式在全部唯一标识分段中可通用。
需要说明的是,上述端点唯一标识的确定方法可适用于按照递增顺序分配唯一标识的规则,如果分配规则是按照递减顺序分配,则端点唯一标识的确定方法可以相反,在此不再赘述。此外,考虑到分配规则的形式可以是多样的,还可以先按照分配规则指示的唯一标识分配先后顺序将标识号段中的唯一标识重新排列,使位于最左侧的唯一标识最先被分配,例如3128、3129、312A、312B、312C的唯一标识分段中,如果按照递增顺序分配,则排列顺序可以是3128、3129、312A、312B、312C,如果按照递减顺序分配,则可以重新排列为312C、312B、312A、3129、3128;在完成排列后,可以将已分配的唯一标识中位于最右侧的唯一标识标记为端点唯一标识。
在获取所述端点唯一标识后,所述在所述标识号段内获取目标唯一标识并分配至所述目标信息的步骤还可以包括:
步骤S320,在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息。
本示例性实施例中,在标识号段内,可以从端点唯一标识开始,按照预设的方向进行偏移,选取新的唯一标识作为目标唯一标识进行分配。举例而言,在3128、3129、312A、312B、312C的唯一标识分段内,端点唯一标识为312A;如果分配规则是按照递增顺序分配,则在需要分配一个唯一标识时,可以从312A向右偏移一个数据位置,确定目标唯一标识为312B;如果分配规则是按照递减顺序分配,则在需要分配一个唯一标识时,可以从312A向左偏移一个数据位置,确定目标唯一标识为3129。此外,每次偏移的程度也可以是两个或多个数据间隔,例如优先分配奇数唯一标识的情况中,可以将唯一标识按照递增顺序排列后,每次偏移端点唯一标识两个数据间隔等等。本实施例对此不做特别限定。
在上述示例性实施例中,工作节点从规则节点获取的标识号段包括的是连续的多个唯一标识,即相邻的两个唯一标识差值为1。对于这样的标识号段,可以将端点唯一标识加一得到目标唯一标识,即可以在标识号段中按自增的方式分配目标唯一标识,每分配出一个唯一标识,端点唯一标识加一。
除了上述连续的多个唯一标识的分段方式外,标识号段还可以包括离散的多个唯一标识。形成唯一标识离散分布的可能方式有很多,例如系统运维人员通过输入分配唯一标识后,剩余的未分配唯一标识可能形成离散的序列,或者在某次唯一标识分配中采取了随机分配的规则,则也可以造成剩余的唯一标识离散分布。在本示例性实施例中,还可以是因为收回的唯一标识呈现离散分布;收回唯一标识的原因可以是目标信息从预设数据库中注销,也可以是某个历史分配事件由于不合法被系统认定为无效等。对于包括离散的多个唯一标识的标识号段,可以将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。举例而言,对于包括[3128、312C、6052C、3129、9A1E]的标识号段,端点唯一标识为312C;如果分配规则是从左向右分配,则在需要分配一个唯一标识时,可以将指向所述端点唯一标识312C的指针移动到下一唯一标识的位置,获取目标唯一标识为6052C。此外,根据不同的设定,下一唯一标识的位置也可以是唯一标识排列中相邻的左侧位置,也可以间隔一个数据位置的右侧位置等等,本实施例对此不做特别限定。此外,本示例实施方式中还可以对离散的多个唯一标识按照一定的规则将其排列,例如可以按照数值从小到大或从大到小排列,也可以按照唯一标识收回的时间顺序排列等等。排列后,则可以实现依据排列进行唯一标识分配的效果。
步骤S330,在分配完成后,将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。按照上述端点唯一标识的定义,当对端点唯一标识执行偏移后,其对应的新唯一标识就是目标唯一标识,因此可以对其更新。端点唯一标识反映标识号段当前的分配状态,因此可以将更新后的端点唯一标识写入预设数据库,以避免规则节点获取了旧的端点唯一标识,造成系统中的重复分配。
本示例实施方式中,可以根据业务场景对唯一标识的分配规则进行定制,从而增加适用范围。例如,所述规则节点可以从所述预设数据库获取所述标识号段范围以及所述端点唯一标识;或者,所述规则节点可以接收输入的所述标识号段范围以及所述端点唯一标识并写入所述预设数据库。举例而言:
如图4所示,在一为移动设备IMEI分配GUID的流式计算系统410中,预设数据库420中存储了全部的GUID(1、2、3…n)及全部的映射关系(IMEI1->1、IMEI2->2等)。为了提高处理速度,降低资源量,规则节点413可以不保存预设数据库中的这些原始数据及信息,而仅保存整理后的信息,如可以是标识号段、优先级、策略或状态等;例如图4中所示,[1,6.4KW]可以表示标识号段是从1到64000000的连续序列,[3,5,10001]可以表示包含了3、5、10001三个唯一标识的离散序列,优先级可以是数值形式,如数值越小代表优先级越高,策略可以包括该标识号段是连续序列或离散序列,也可以包括该标识号段内的分配策略,如顺序分配、每次间隔一个数据分配等,状态可以包括该标识号段是已分配完还是未分配的,也可以包括当前的端点唯一标识等。简而言之,规则节点413集成了唯一标识的分配规则。而分配规则可以包括系统中的预设分配逻辑,也可以包括系统运维人员输入的新增分配方案,例如系统运维人员希望保留当前的标识号段或部分唯一标识时,可以直接输入新的标识号段与端点唯一标识,或者系统运维人员需要增加新的分配规则时,可以不用更改预设数据库而直接从规则节点写入等。
需要说明的是,所述规则节点可以在从所述预设数据库获取所述标识号段范围以及所述端点唯一标识的同时,还接收输入的所述标识号段范围与所述端点唯一标识。两种方案并行时可能存在冲突的情况,即外部写入的新增分配方案与系统中的预设分配逻辑,或与当前规则节点的状态信息可能产生矛盾。对此,可以在规则节点中设定冲突处理逻辑,例如当新增分配方案无法实现时,可以不做处理并反馈错误信息,也可以认定新增分配方案无效等;无法实现的情况可以是外部指定分配一个已分配的唯一标识,或为标识号段指定了一个不在该号段以内的端点唯一标识等。当新增分配方案可以实现时,例如可以是改变了当前标识号段的优先级,或者为标识号段重新指定了一个该号段内的端点唯一标识,或者改变了端点唯一标识的预设偏移方向等;在这些情况下新增分配方案只是与预设分配逻辑冲突,但其在理论上可以实现,则规则节点可以赋予新增分配方案更高的优先级,即先满足外部写入的分配方案,再满足预设分配逻辑,也可以相反的优先按照预设分配逻辑分配,然后再考虑满足新增分配方案,还可以将冲突信息反馈给系统运维人员,由系统运维人员决定优先级等。
为了对标识号段实现较高的利用率,在一示例性实施例中,所述方法还可以包括:向所述规则节点发送状态表征信息;当接收到所述规则节点根据所述状态表征信息判断状态异常而发送的收回标识号段指令时,向所述规则节点退回所述标识号段。其中,状态表征信息用于表征工作节点当前的状态是否正常,可以是心跳信息等周期性信息,也可以是异常警报信息等触发性信息,如果工作节点状态异常,则规则节点可以收回该工作节点的标识号段,例如可以将该已分配的标识号段重新标记为可分配,或将该标识号段暂时性锁定等。
流式计算系统中包括多个工作节点,源节点可以通过随机分配或者字段式分配方等方式,将标识分配任务下发至具体的工作节点。随机分配是指源节点将标识分配任务随机下发到工作节点;字段式分配是指源节点以目标信息的字段为依据将标识分配任务下发到特定的工作节点,相比于随机分配方式,其处理重复标识分配任务的效率更高,稳定性更好。因此,在一示例性实施例中,可以将为同一所述目标信息分配唯一标识的标识分配任务固定下发至同一工作节点。
举例而言,在一示例性实施例中,可以通过哈希转发方式,实现将为同一所述目标信息分配唯一标识的标识分配任务固定下发至同一工作节点。哈希转发是字段式分配的一种实现方式,其特点是输入空间远大于输出空间,即多个目标信息可以对应于一个工作节点;考虑到工作节点数量的增多会增加流式计算系统在物理上的实现难度,因此采用哈希转发可以提高工作节点的利用率,并且哈希转发是一种安全散列,可以保障系统的正常运行。
在一示例性实施例中,可以首先将任意长度的目标信息通过散列算法转换成固定长度的输出字段,然后可以根据该输出字段将任务分配至指定工作节点。例如,源节点可以以接收到的IMEI为依据,将属于同一个IMEI的请求标识分配任务分配给同一个工作节点;具体而言,源节点可以为各个工作节点分配不同的哈希转发值,并且源节点在接收到IMEI时,可以对IMEI根据预设算法进行哈希转换得到哈希转换结果,如果该哈希转换结果与为某一工作节点的分配的哈希转发值相同,则将为IMEI分配唯一标识的标识分配任务分配至该工作节点。或者,也可以是,源节点为各个工作节点分配不同的哈希转发值,源节点在接收到IMEI时,将该IMEI通告给所有的工作节点,各工作节点根据预设的哈希算法将该IMEI转换为哈希转换结果,并与分配给自己的哈希转发值匹配,如果匹配成功,则该工作节点处理为该IMEI分配唯一标识的任务。
除了哈希转发,还可以通过其他方式分配标识分配任务,例如可以根据目标信息最后一位数值分类,对应到相应的工作节点,或者根据目标信息中特定的字段信息分类,如IMEI中第七位与第八位数字代表移动设备产地,可以根据产地对目标信息分类,进而可以将其分配给位于相应产地的工作节点等。需要注意的是,如果出现一个目标信息对应于多个工作节点,则可能导致系统的不稳定,因此在指定标识分配任务分配规则时,应遵循每个输入信息只有对应的一个输出信息。以上示例性实施例中讨论的主要是为目标信息分配新的目标唯一标识,还存在一种情况,即所述目标信息在预设数据库中已有对应的唯一标识,针对这种情况,在一示例性实施例中,如图5所示,在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息可以包括:
步骤S510,查询是否存在所述目标信息与唯一标识的映射关系。
其中,本实施例中的映射关系是指目标信息与唯一标识之间一一对应的关系,例如图4中IMEI1->1即为一条映射关系信息,通常映射关系可以存储在预设数据库中。预设数据库在任一唯一标识分配完成后,将该唯一标识标记为已分配,同时记录其分配对象的必要信息,从而生成目标信息与唯一标识之间的映射关系。
步骤S520,如果查询到存在所述目标信息与一关联唯一标识的映射关系,则将所述关联唯一标识作为目标唯一标识分配至所述目标信息。
如果查询到已经存在目标信息与唯一标识的映射关系,说明已经为该目标信息分配过唯一标识,则不用重新分配,可以直接调取对应的唯一标识。例如一个手机号码已经在应用程序中注册过ID,则再次请求分配ID时,可以直接查询出已有的ID,调取并分配至该手机号码。
步骤S530,如果未查询到所述目标信息与任一唯一标识的映射关系,则在所述标识号段范围内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息。
仍以向手机号码分配应用程序中的ID为例,如果该手机号码还未在应用程序中注册过ID,则无法查询到手机号码与ID的映射关系,可以通过偏移端点唯一标识的方法为其分配新的ID。
此外,系统在运行时,可能经常出现同一目标信息短时间内多次请求分配唯一标识的情况。例如目标信息未收到反馈或反馈延迟时重复发送请求,或同一移动设备由于信号不稳定等原因,在短时间内反复接入与退出一无线网络等。这样,系统需要短时间内多次查询目标信息与唯一标识的映射关系。在这种情况下,为了进一步提高系统处理重复任务的效率,还可以将映射关系记录在本地缓存4121中。基于此,在一示例性实施例中,参考图5所示的工作节点处理标识分配任务的过程,查询是否存在所述目标信息与唯一标识的映射关系可以通过步骤S511~S513实现:
步骤S511中,在本地缓存查询是否存在所述目标信息与唯一标识的映射关系。
本地缓存是工作节点的物理内存中用于临时性存储数据或信息的部分,可以将本地生成的目标信息与唯一标识的映射关系存储于本地缓存中。然而,本地缓存通常无法存储预设数据库中那样大量的数据及映射关系,因此可以根据本地缓存的物理状况决定映射关系存储数量,如10000个、100000个等,然后在有新的映射关系写入时,根据缓存的构建逻辑,决定保留或移除哪些映射关系。举例而言,可以将本地缓存构建为LRU(Least RecentlyUsed,最近最久未使用)形式,或FIFO(First in First out,先进先出)形式等。以LRU缓存为例,当有新的映射关系写入时,LRU缓存可以根据历史访问顺序将所有的映射关系排序,最近访问的映射关系排列在最前面,然后移除序列中最后的映射关系。构建LRU缓存后,当工作节点接收到为目标信息分配唯一标识的任务后,可以先在LRU缓存中查询是否存在目标信息与唯一标识的映射关系,如果存在,可以直接从LRU缓存中调取,将原本节点之间的交互处理过程简化为本地处理过程,大大提高了处理效率。
由于从本地缓存中查询的速率远高于从预设数据库中查询,因此可以优先在本地缓存中查询。步骤S512中,如果在本地缓存未查询到所述目标信息与任一唯一标识的映射关系,则在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系。通常本地缓存上可以存储本地工作节点生成的映射关系中的一部分,而预设数据库中可以储存所有工作节点生成的所有映射关系,其包含的数据量与信息量可以远大于本地缓存。
步骤S513中,如果在所述预设数据库查询到所述目标信息与唯一标识的映射关系,则将所述目标信息与唯一标识的映射关系写入所述本地缓存。
在实际应用中,可能有多种情况导致预设数据库中已有的目标信息与唯一标识的映射关系不在本地缓存中,例如该映射关系曾记录于本地缓存中,但因为太久没被访问而被本地缓存移除,或者该映射关系最初是由其他工作节点分配唯一标识时生成的,但该工作节点因为异常不再使用,使得同一目标信息的标识分配任务转而下发到本工作节点。无论哪种原因,该映射关系当前再次被访问,则说明该映射关系可能将进入活跃状态,因此可以将其再次写入本地缓存中。通过本地缓存与预设数据库的映射关系记录,可以将标识分配任务分为三种级别:从本地缓存中调取、从预设数据库中调取及生成新的唯一标识,其所需的处理量是逐级递增的,因此逐级查询与确认标识分配任务级别的分配方式可以在很大程度上优化整个标识分配任务处理流程。
进一步的,在一示例性实施例中,在为目标信息分配了新的目标唯一标识后,为了便于下一次快速访问,所述方法还可以包括:
步骤S540,将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库与本地缓存。其中,在为目标信息分配新的目标唯一标识后,工作节点中生成了该目标信息与该目标唯一标识的映射关系,通常可以将其写入预设数据库,以保证预设数据库的信息更新,也可以同时将其写入本地缓存,例如工作节点为移动设备的IMEI分配新的GUID后,可以将IMEI与GUID的映射关系写入本地缓存,以便于下一次该IMEI请求GUID时,直接从本地缓存中调取。
在一示例性实施例中,所述流式计算系统还可以包括控制节点,所述方法还可以包括:向控制节点发送状态表征信息;当接收到所述控制节点根据所述状态表征信息判断状态异常而发送的重启指令时,执行所述重启指令。参考上述图4所示,工作节点412不仅可以将状态表征信息发送至规则节点413,也可以同时将其发送至控制节点414,控制节点414在工作节点412状态异常时,可以向工作节点412发送重启指令,以使工作节点412具备容灾能力。规则节点413与控制节点414关于工作节点412状态异常的响应可以是相互独立的,即当工作节点412状态异常时,规则节点413可以立即收回其标识号段,当控制节点414重启工作节点412成功后,规则节点413可以再次分配标识号段。
为了进一步提高系统的容灾能力,在一示例性实施例中,所述规则节点413还可以包括一个主规则节点4131以及至少一个备规则节点4132;所述主规则节点4131可以发送状态表征信息与网络地址信息至所述预设数据库420;所述备规则节点4132可以实时从所述预设数据库420读取所述主规则节点4131的状态信息,判断所述主规则节点4131是否异常;在判断所述主规则节点4131异常时,所述备规则节点4132可以向所述主规则节点4131的地址发起CAS操作,并在CAS操作成功后升级为主规则节点4131。
本示例实施方式中,上述状态表征信息可以是由主规则节点4131发送的周期性心跳信息或触发性异常警报信息等,用以表征主规则节点4131的健康状况;网络地址信息可以是IP地址,是主规则节点4131与其他节点交互的依据。备规则节点4132的任务是在主规则节点4131异常时取代其角色,因此可以实时读取其状态信息,以便于第一时间发现主规则节点4131异常。CAS(Compare and Swap)操作是指并发访问同一个数据时,只有一个写操作成功,以防止系统冲突。在本实施例中,备规则节点4132可以通过发起对于主规则节点4131地址的CAS操作以获取主规则节点4131的地址,从而将与工作节点、规则节点之间的交互从主规则节点4131转移到自身,由于可能存在多个备规则节点4132,则多个备规则节点4132可能同时向预设数据库中主规则节点4131的地址发起CAS操作,只有一个操作可被预设数据库实现,防止多个备规则节点4132同时升级为主规则节点4131。
本示例实施方式中还提供了一种唯一标识分配方法,可以应用于如图1所示的流式计算系统中,该流式计算系统110可以包括源节点111、多个工作节点112及规则节点113。如图6所示,所述唯一标识分配方法可以包括:
步骤S610,源节点响应针对目标信息的标识分配请求,将为所述目标信息分配唯一标识的标识分配任务下发至一工作节点。
其中,所述目标信息可以包括国际移动设备识别码,所述唯一标识可以包括全局唯一标识符。在本发明其他示例性实施例中,所述目标信息还可以包括媒体访问控制MAC地址、唯一设备标识符UDID、应用APP信息、移动用户号码或移动终端行为日志等,所述唯一标识还可以包括通用唯一识别码UUID、应用APP数字账号等,这同样属于本发明的保护范围。
步骤S620,所述工作节点从规则节点获取标识号段。以及步骤S630,所述工作节点在接收所述标识分配任务后,在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在一示例性实施例中,所述唯一标识分配方法还可以包括:所述工作节点从所述规则节点获取所述标识号段的端点唯一标识。在获取所述端点唯一标识后,步骤S620可以包括:在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息;以及将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在上述示例性实施例中,工作节点从规则节点获取的标识号段包括的是连续的多个唯一标识,即相邻的两个唯一标识差值为1。对于这样的标识号段,可以将端点唯一标识加一得到目标唯一标识,即可以在标识号段中按自增的方式分配目标唯一标识,每分配出一个唯一标识,端点唯一标识加一。
除了上述连续的多个唯一标识的分段方式外,标识号段还可以包括离散的多个唯一标识。对于这样的标识号段,可以将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
本示例实施方式中,可以根据业务场景对唯一标识的分配规则进行定制,从而增加适用范围。例如,所述方法还可以包括:所述规则节点从所述预设数据库获取所述标识号段范围以及所述端点唯一标识;或者,所述规则节点接收输入的所述标识号段范围以及所述端点唯一标识并写入所述预设数据库。举例而言:
为了对标识号段实现较高的利用率,在一示例性实施例中,所述方法还可以包括:所述工作节点向所述规则节点发送状态表征信息;如果所述规则节点根据状态表征信息判断所述工作节点异常,则将下发至所述工作节点的标识号段收回。
在一示例性实施例中,将为所述目标信息分配唯一标识的标识分配任务下发至一工作节点可以包括:将为同一所述目标信息分配唯一标识的标识分配任务固定下发至同一工作节点。
举例而言,在一示例性实施例中,可以通过哈希转发方式,实现将为同一所述目标信息分配唯一标识的标识分配任务固定下发至同一工作节点。
以上示例性实施例中讨论的主要是为目标信息分配新的目标唯一标识,还存在一种情况,即所述目标信息在预设数据库中已有对应的唯一标识,针对这种情况,在一示例性实施例中,如图7所示,所述工作节点在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息可以包括:步骤S710,所述工作节点查询是否存在所述目标信息与唯一标识的映射关系;步骤S720,如果查询到存在所述目标信息与一关联唯一标识的映射关系,则将所述关联唯一标识作为目标唯一标识分配至所述目标信息;步骤S730,如果未查询到所述目标信息与任一唯一标识的映射关系,则在所述标识号段范围内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息。
此外,系统在运行时,可能经常出现同一目标信息短时间内多次请求分配唯一标识的情况。则在一示例性实施例中,参考图7所示的工作节点与本地缓存及预设数据库之间的交互过程,步骤S710可以包括:步骤S711,在所述工作节点的本地缓存查询是否存在所述目标信息与唯一标识的映射关系;步骤S712,如果在本地缓存未查询到所述目标信息与任一唯一标识的映射关系,则在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系;步骤S713,如果在所述预设数据库查询到所述目标信息与唯一标识的映射关系,则将所述目标信息与唯一标识的映射关系写入所述本地缓存。
进一步的,在一示例性实施例中,在为目标信息分配了新的目标唯一标识后,为了便于下一次快速访问,所述方法还可以包括:步骤S740,将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库与本地缓存。
在一示例性实施例中,参考上述图4所示,所述流式计算系统410还可以包括控制节点414。所述方法还可以包括:通过所述控制节点414获取所述工作节点412的状态,并在所述工作节点412的状态异常时重启所述工作节点412。
为了进一步提高系统的容灾能力,在一示例性实施例中,所述规则节点413还可以包括一个主规则节点4131以及至少一个备规则节点4132;所述方法还可以包括:所述主规则节点4131发送状态表征信息与网络地址信息至所述预设数据库420。所述备规则节点4132实时从所述预设数据库420读取所述主规则节点4131的状态信息,判断所述主规则节点4131是否异常。所述备规则节点4132在判断所述主规则节点4131异常时,向所述主规则节点4131的地址发起CAS操作,并在CAS操作成功后升级为主规则节点4131。
本示例实施方式中还提供了一种唯一标识分配装置,可以应用于流式计算系统中的工作节点。如图8所示,该唯一标识分配装置800可以包括:源节点交互模块810,用于接收从源节点下发的为目标信息分配唯一标识的标识分配任务;规则节点交互模块820,用于从规则节点获取标识号段;唯一标识获取模块830,用于在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在一示例性实施例中,所述规则节点交互模块还可以用于从所述规则节点获取所述标识号段的端点唯一标识;所述唯一标识获取模块可以用于在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息,以及将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在一示例性实施例中,所述标识号段可以包括连续的多个唯一标识;所述唯一标识获取模块可以用于将所述端点唯一标识加一得到所述目标唯一标识。
在一示例性实施例中,所述标识号段可以包括离散的多个唯一标识;所述唯一标识获取模块可以用于将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
在一示例性实施例中,所述规则节点交互模块还可以用于向所述规则节点发送状态表征信息,以及当接收到所述规则节点根据所述状态表征信息判断状态异常而发送的收回标识号段指令时,向所述规则节点退回所述标识号段。
在一示例性实施例中,所述唯一标识获取模块可以包括:映射查询单元,用于查询是否存在所述目标信息与唯一标识的映射关系;标识号段处理单元,用于当未查询到所述目标信息与任一唯一标识的映射关系时,在所述标识号段内获取目标唯一标识并分配至所述目标信息。
在一示例性实施例中,所述映射查询单元可以用于在本地缓存查询是否存在所述目标信息与唯一标识的映射关系,以及当在本地缓存未查询到所述目标信息与任一唯一标识的映射关系时,在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系;所述唯一标识获取模块还可以包括:映射写入单元,用于当在所述预设数据库查询到所述目标信息与唯一标识的映射关系时,将所述目标信息与唯一标识的映射关系写入所述本地缓存。
在一示例性实施例中,所述唯一标识获取模块还可以包括:映射写入单元,用于将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库以及本地缓存。
在一示例性实施例中,所述唯一标识分配装置还可以包括:控制节点交互模块,用于向控制节点发送状态表征信息,以及当接收到所述控制节点根据所述状态表征信息判断状态异常而发送的重启指令时,执行所述重启指令。
在一示例性实施例中,所述目标信息可以包括国际移动设备识别码,所述唯一标识可以包括全局唯一标识符。以上装置中各模块/单元的具体细节在方法部分的示例性实施例中已有详细的描述,因此不再赘述。
本示例实施方式还提供了一种唯一标识分配系统,如图1所示,所述唯一标识分配系统可以基于流式计算系统110,包括源节点111、多个工作节点112以及规则节点113。其中,所述源节点111用于响应针对目标信息的标识分配请求,将为所述目标信息分配唯一标识的标识分配任务下发至一工作节点112;所述规则节点113用于从预设数据库获取标识号段,并向所述工作节点112分配所述标识号段;所述工作节点112用于在接收所述标识分配任务后,在所述标识号段内获取目标唯一标识并分配至所述目标信息。其中,目标信息为外部输入的请求分配唯一标识的信息,可以包括国际移动设备识别码、媒体访问控制MAC地址、唯一设备标识符UDID、应用APP信息、移动用户号码或移动终端行为日志等,唯一标识可以包括全局唯一标识符、通用唯一识别码UUID、应用APP数字账号等;预设数据库120是位于该唯一标识分配系统外部的数据库,可以存储全部唯一标识的数据及映射关系,可被唯一标识分配系统读写。
在一示例性实施例中,所述规则节点还可以用于从所述预设数据库获取所述标识号段的端点唯一标识,并向所述工作节点分配所述端点唯一标识;所述工作节点还可以用于在所述标识号段内对所述端点唯一标识进行预设偏移得到所述目标唯一标识,以及将所述端点唯一标识更新为所述目标唯一标识并写入所述预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
在一示例性实施例中,所述工作节点还可以包括唯一标识获取模块:当所述标识号段包括连续的多个唯一标识时,所述唯一标识获取模块可以用于将所述端点唯一标识加一,从而得到所述目标唯一标识;当所述标识号段可以包括离散的多个唯一标识时,所述唯一标识获取模块可以用于将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
在一示例性实施例中,所述源节点可以包括任务分配模块,用于将所述目标信息分组,使为同一所述目标信息分配唯一标识的标识分配任务固定下发至同一工作节点。
在一示例性实施例中,所述任务分配模块可以用于对所述目标信息进行哈希转发,使为同一所述目标信息分配唯一标识的标识分配任务固定下发至同一工作节点。
在一示例性实施例中,所述工作节点还可以包括状态表征模块,用于向所述规则节点发送状态表征信息,以便于所述规则节点在根据所述状态表征信息判断所述工作节点异常时,将所述工作节点获取的标识号段收回。
在一示例性实施例中,所述工作节点还可以包括本地缓存,用于缓存所述目标信息与所述目标唯一标识的映射关系,以便于所述工作节点查询及调取。当为目标信息分配目标唯一标识后,生成了两者之间的映射关系,可以将其存储于本地缓存中。
在一示例性实施例中,所述规则节点可以包括规则写入模块,用于接收输入的所述标识号段以及所述端点唯一标识并写入所述预设数据库。规则写入模块可以是规则节点中可从外部输入的一个接口,以使系统运维人员通过该接口写入新的分配规则或直接分配标识号段与端点唯一标识;当有外部输入的信息时,可以将其写入预设数据库,以防止外部输入的信息与预设数据库原有的逻辑发生冲突。
在一示例性实施例中,所述唯一标识分配系统还可以包括控制节点,用于获取所述工作节点的状态,并在所述工作节点的状态异常时重启所述工作节点。
在一示例性实施例中,所述规则节点可以包括一个主规则节点以及至少一个备规则节点;所述主规则节点用于发送状态信息与地址信息至所述预设数据库;所述备规则节点用于实时从所述预设数据库读取所述主规则节点的状态信息,在判断所述主规则节点异常时,向所述主规则节点的地址发起CAS操作,并在CAS操作成功后升级为主规则节点。
以上系统中各节点/模块的具体细节在方法部分的示例性实施例中已有详细的描述,因此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
本示例实施方式还提供一种电子设备,执行图2、图3、图5、图6或图7任一所示的唯一标识分配方法的全部或者部分步骤。所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行:响应于用户在客户端的输入,根据来自所述客户端的远程输入消息更新云应用端的远程输入事件队列;以及将用于获取输入事件的应用程序接口API获取输入事件的操作重定向至所述远程输入事件队列,并对从所述远程输入事件队列获取的输入事件进行处理。
图9示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分909。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的装置中限定的各种功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
本示例实施方式还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个计算机程序,当上述一个或者多个计算机程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的方法。例如,所述的电子设备可以实现如图2、图3、图5、图6或图7所示的各个步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (12)

1.一种唯一标识分配方法,其特征在于,所述方法应用于流式计算系统架构中的工作节点,所述流式计算系统架构还包括源节点和规则节点;所述方法包括:
接收从源节点向工作节点下发的为目标信息分配唯一标识的标识分配任务,所述目标信息是所述源节点从外部接收的;
从所述规则节点获取标识号段;所述标识号段是将预设数据库中的全部唯一标识按照预设分段规则进行分段后得到的,所述规则节点负责将预设数据库中的标识号段按照预设规则分配至各工作节点;
在所述标识号段内获取目标唯一标识并分配至所述目标信息;
所述方法还包括:
向所述规则节点发送状态表征信息;
当接收到所述规则节点根据所述状态表征信息判断状态异常而发送的收回标识号段指令时,向所述规则节点退回所述标识号段。
2.根据权利要求1所述的唯一标识分配方法,其特征在于,所述方法还包括:
从所述规则节点获取所述标识号段的端点唯一标识;
在所述标识号段内获取目标唯一标识并分配至所述目标信息包括:
在所述标识号段内对所述端点唯一标识进行预设偏移得到目标唯一标识并分配至所述目标信息;以及
将所述端点唯一标识更新为所述目标唯一标识并写入预设数据库,以供所述规则节点从所述预设数据库获取更新后的所述端点唯一标识。
3.根据权利要求2所述的唯一标识分配方法,其特征在于,所述标识号段包括连续的多个唯一标识;对所述端点唯一标识进行预设偏移得到目标唯一标识包括:
将所述端点唯一标识加一得到所述目标唯一标识。
4.根据权利要求2所述的唯一标识分配方法,其特征在于,所述标识号段包括离散的多个唯一标识;对所述端点唯一标识进行预设偏移得到目标唯一标识包括:
将指向所述端点唯一标识的指针移动到下一唯一标识的位置,从而得到所述目标唯一标识。
5.根据权利要求1所述的唯一标识分配方法,其特征在于,在所述标识号段内获取目标唯一标识并分配至所述目标信息包括:
查询是否存在所述目标信息与唯一标识的映射关系;
如果未查询到所述目标信息与任一唯一标识的映射关系,则在所述标识号段内获取目标唯一标识并分配至所述目标信息。
6.根据权利要求5所述的唯一标识分配方法,其特征在于,查询是否存在所述目标信息与唯一标识的映射关系包括:
在本地缓存查询是否存在所述目标信息与唯一标识的映射关系;
如果在本地缓存未查询到所述目标信息与任一唯一标识的映射关系,则在所述预设数据库查询是否存在所述目标信息与唯一标识的映射关系;
如果在所述预设数据库查询到所述目标信息与唯一标识的映射关系,则将所述目标信息与唯一标识的映射关系写入所述本地缓存。
7.根据权利要求5所述的唯一标识分配方法,其特征在于,所述方法还包括:
将所述目标信息与所述目标唯一标识的映射关系写入所述预设数据库以及本地缓存。
8.根据权利要求1所述的唯一标识分配方法,其特征在于,所述方法还包括:
向控制节点发送状态表征信息;
当接收到所述控制节点根据所述状态表征信息判断状态异常而发送的重启指令时,执行所述重启指令。
9.根据权利要求1~8任意一项所述的唯一标识分配方法,其特征在于:所述目标信息包括国际移动设备识别码,所述唯一标识包括全局唯一标识符。
10.一种唯一标识分配装置,其特征在于,所述装置应用于流式计算系统架构中的工作节点,所述流式计算系统架构还包括源节点和规则节点;包括:
源节点交互模块,用于接收从源节点向工作节点下发的为目标信息分配唯一标识的标识分配任务,所述目标信息是所述源节点从外部接收的;
规则节点交互模块,用于从规则节点获取标识号段,所述标识号段是将预设数据库中的全部唯一标识按照预设分段规则进行分段后得到的,所述规则节点负责将预设数据库中的标识号段按照预设规则分配至各工作节点;
唯一标识获取模块,用于在所述标识号段内获取目标唯一标识并分配至所述目标信息;
号段退回模块,用于向所述规则节点发送状态表征信息;当接收到所述规则节点根据所述状态表征信息判断状态异常而发送的收回标识号段指令时,向所述规则节点退回所述标识号段。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-9任一项所述的唯一标识分配方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的唯一标识分配方法。
CN201810326471.XA 2018-04-12 2018-04-12 唯一标识分配方法及装置、电子设备、存储介质 Active CN110196860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810326471.XA CN110196860B (zh) 2018-04-12 2018-04-12 唯一标识分配方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810326471.XA CN110196860B (zh) 2018-04-12 2018-04-12 唯一标识分配方法及装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN110196860A CN110196860A (zh) 2019-09-03
CN110196860B true CN110196860B (zh) 2024-03-05

Family

ID=67751032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810326471.XA Active CN110196860B (zh) 2018-04-12 2018-04-12 唯一标识分配方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN110196860B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314501B (zh) * 2020-02-21 2021-08-17 广州欢网科技有限责任公司 解决智能终端唯一标识重复的方法及装置
CN111353772B (zh) * 2020-02-24 2024-01-16 网银在线(北京)科技有限公司 单号的生成方法和装置、存储介质、电子装置
CN111353773B (zh) * 2020-02-24 2024-01-16 网银在线(北京)科技有限公司 标识的处理方法和装置、存储介质、电子装置
CN112035432B (zh) * 2020-07-22 2024-02-23 大箴(杭州)科技有限公司 数据的置换迁移方法、装置计算机设备
CN112202662B (zh) * 2020-09-23 2022-11-08 北京达佳互联信息技术有限公司 一种生成即时通讯标识信息的方法及装置
CN115361399B (zh) * 2022-10-24 2023-01-24 中国水利水电第七工程局有限公司 一种多终端数据同步方法、装置及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811931A (zh) * 2014-01-23 2015-07-29 腾讯科技(深圳)有限公司 一种移动终端唯一标识分配系统和方法
WO2016073019A1 (en) * 2014-11-04 2016-05-12 Hewlett Packard Enterprise Development Lp Generating a unique identifier for an object in a distributed file system
CN105812248A (zh) * 2016-05-09 2016-07-27 腾讯科技(深圳)有限公司 标识取值的分配方法和装置
CN106354840A (zh) * 2016-08-31 2017-01-25 北京小米移动软件有限公司 文件处理方法、装置及分布式文件系统
CN106980615A (zh) * 2016-01-15 2017-07-25 阿里巴巴集团控股有限公司 业务处理方法和系统
CN107451254A (zh) * 2017-07-31 2017-12-08 广州市食蚁兽网络技术有限公司 一种生成数据库表数据唯一标识的方法
CN107844539A (zh) * 2017-10-19 2018-03-27 广州阿里巴巴文学信息技术有限公司 隔离数据管理方法、装置、系统、计算设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421341B1 (en) * 2004-06-30 2008-09-02 Navteq North America, Llc Method of collecting information for a geographic database for use with a navigation system
EP2454860A4 (en) * 2009-07-14 2014-11-05 Dpid Pty Ltd APPARATUS AND METHOD FOR MANAGING A REGISTER OF SINGLE IDENTIFIERS
US20170124464A1 (en) * 2015-10-28 2017-05-04 Fractal Industries, Inc. Rapid predictive analysis of very large data sets using the distributed computational graph

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811931A (zh) * 2014-01-23 2015-07-29 腾讯科技(深圳)有限公司 一种移动终端唯一标识分配系统和方法
WO2016073019A1 (en) * 2014-11-04 2016-05-12 Hewlett Packard Enterprise Development Lp Generating a unique identifier for an object in a distributed file system
CN106980615A (zh) * 2016-01-15 2017-07-25 阿里巴巴集团控股有限公司 业务处理方法和系统
CN105812248A (zh) * 2016-05-09 2016-07-27 腾讯科技(深圳)有限公司 标识取值的分配方法和装置
CN106354840A (zh) * 2016-08-31 2017-01-25 北京小米移动软件有限公司 文件处理方法、装置及分布式文件系统
CN107451254A (zh) * 2017-07-31 2017-12-08 广州市食蚁兽网络技术有限公司 一种生成数据库表数据唯一标识的方法
CN107844539A (zh) * 2017-10-19 2018-03-27 广州阿里巴巴文学信息技术有限公司 隔离数据管理方法、装置、系统、计算设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李少波.《制造大数据技术与应用》.华中科技大学出版社,2018,第45页. *

Also Published As

Publication number Publication date
CN110196860A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
CN110196860B (zh) 唯一标识分配方法及装置、电子设备、存储介质
CN109040212B (zh) 设备接入服务器集群方法、系统、设备及存储介质
CN106789362B (zh) 一种设备管理方法及网管系统
US10534776B2 (en) Proximity grids for an in-memory data grid
US11003497B2 (en) Managing resource allocation in hierarchical quota system
CN107943594B (zh) 数据获取方法和装置
WO2017219848A1 (zh) 分布式数据库中id的处理方法、管理系统及服务器
JP2021525923A (ja) インテリジェント機器を制御する方法及び機器
US20050251538A1 (en) Unique ID management in disconnected database replication
CN107733957B (zh) 分布式服务配置系统及版本号分配方法
CN108616424B (zh) 一种资源调度方法、计算机设备和系统
CN108667744B (zh) 流量控制方法及装置
CN112153167B (zh) 网际互连协议管理方法、装置、电子设备及存储介质
US20160070475A1 (en) Memory Management Method, Apparatus, and System
CN111797091A (zh) 数据库中数据查询的方法、装置、电子设备和存储介质
CN112307119A (zh) 数据同步方法、装置、设备及存储介质
CN111163186B (zh) 一种id生成方法、装置、设备和存储介质
CN113271359A (zh) 刷新缓存数据的方法、装置、电子设备和存储介质
CN115640110A (zh) 分布式云计算系统调度方法和装置
CN110798507B (zh) 一种dhcp地址分配记忆的方法与系统
CN111737204A (zh) 文件目录遍历方法、装置、设备和介质
CN117725115A (zh) 一种数据库序列处理方法、装置、设备以及存储介质
CN114238518A (zh) 数据处理方法、装置、设备及存储介质
CN110825732A (zh) 数据查询方法、装置、计算机设备和可读存储介质
CN115587147A (zh) 一种数据处理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant