(12)发明专利申请
(10)申请公布号 CN 107451254 A(43)申请公布日 2017.12.08
(21)申请号 201710637885.X(22)申请日 2017.07.31
(71)申请人 广州市食蚁兽网络技术有限公司
地址 511400 广东省广州市番禺区桥南街
汇景大道350号北区1座6梯301(72)发明人 周继恩 周海军 王荣杰 (51)Int.Cl.
G06F 17/30(2006.01)
权利要求书1页 说明书3页 附图1页
(54)发明名称
一种生成数据库表数据唯一标识的方法(57)摘要
本发明公开了一种生成数据库表数据唯一标识的方法,涉及互联网应用技术领域,包括管理中心、ID生成器和客户端,所述管理中心设有分布式服务注册组件,按照如下步骤实现:(1)启动管理中心,(2)搭建分布式的ID生成器,(3)从客户端调用并获取ID;该生成数据库表数据唯一标识的方法有效降低对CPU计算资源的利用,生成的ID在保证数值型、唯一性和有序性的同时,更提供了较高的并发性能和吞吐量,有效降低针对数据库资源的访问压力。
CN 107451254 ACN 107451254 A
权 利 要 求 书
1/1页
1.一种生成数据库表数据唯一标识的方法,包括管理中心、ID生成器和客户端,所述管理中心设有分布式服务注册组件,按照如下步骤实现:
(1)启动管理中心:1)编辑节点信息:通过增减ID生成器的节点来提供横向扩容或缩容的能力;2)输入数据表名:以数据库表名作为唯一标识符Key,根据当前活跃的生成器节点数,通过Hash算法来自动分配对应的节点,并将Key与节点信息存储至分布式服务注册组件中;
3)更新节点信息:ID生成器与服务注册组件建立长连接后,如ID生成器的服务状态出现错误或异常,会将自身的服务状态信息同步到注册组件;
(2)搭建分布式的ID生成器,具体实现步骤如下:1)修改配置文件:在服务进程启动之前,需配置好生成器的主要参数如端口、服务注册组件IP、生成ID的接口元数据信息和节点主从信息;
2)启动服务进程,按照如下步骤实现:第1步,读取配置文件,获取服务注册组件IP和端口,建立连接并读取所负责的数据库表和初始值,保存在本地缓存中;
第2步,启动端口监听,读取配置文件中的端口信息并启动Socket监听;第3步,在启动完成后将端口、运行状态信息同步至服务注册组件;第4步,执行ID数据同步机制,每生成1个ID,执行异步方法将最新生成ID通过本地队列同步至服务注册组件;
3)执行异常处理机制:如果当前的服务出现任何异常或错误信息,将运行状态设置为不可用,将状态信息同步至服务注册组件,并将当前的从节点自动切换为主节点,当前主节点设置不可用的从节点,并发送异常信息到运维人员,通知其快速修复,故障修复完成并能够正常工作后,将从节点设置为可用状态;
(3)从客户端调用并获取ID,具体实现步骤如下:1)修改配置文件:主要设置服务注册组件的IP及端口和生成ID的接口元数据信息;2)初始化客户端:从配置文件读取服务注册组件的IP及端口信息后,建立连接并读取表名与ID生成服务器的映射信息到本地缓存;
3)获取ID值:指定某数据库表名参数,通过表名从本地缓存中获取ID生成服务器的信息,按照指定的IP和端口信息建立连接,通过生成ID的元数据信息所包含的方法生成并获取ID。
2.根据权利要求1所述的一种生成数据库表数据唯一标识的方法,其特征在于:所述管理中心的主要职责是通过使用分布式服务注册组件,管理ID生成器的节点信息,以及数据库表与ID生成器的映射关系,所述管理中心提供可视化或接口访问的操作。
3.根据权利要求1所述的一种生成数据库表数据唯一标识的方法,其特征在于:所述ID生成器的主要职责是在分布式的环境下生成唯一的ID。
2
CN 107451254 A
说 明 书
一种生成数据库表数据唯一标识的方法
1/3页
技术领域
[0001]本发明涉及互联网应用技术领域,特别涉及一种生成数据库表数据唯一标识的方法。
背景技术
[0002]一般来说,针对数据库表对象设置唯一ID,所采用的的方案均是在数据库端解决,常用的方法要么是通过GUID生成唯一字符串(含字母数字以及特殊符号),要么是通过内置支持的自增函数生成,通过数据库端生成ID,在数据存储规模和访问并发量越来越大的时候,无法保证有效的响应速度。发明内容
[0003]本发明提供一种生成数据库表数据唯一标识的方法:一种生成数据库表数据唯一标识的方法,包括管理中心、ID生成器和客户端,所述管理中心设有分布式服务注册组件,按照如下步骤实现:[0004](1)启动管理中心:[0005]1)编辑节点信息:通过增减ID生成器的节点来提供横向扩容或缩容的能力;[0006]2)输入数据表名:以数据库表名作为唯一标识符Key,根据当前活跃的生成器节点数,通过Hash算法来自动分配对应的节点,并将Key与节点信息存储至分布式服务注册组件中;
[0007]3)更新节点信息:ID生成器与服务注册组件建立长连接后,如ID生成器的服务状态出现错误或异常,会将自身的服务状态信息同步到注册组件;[0008](2)搭建分布式的ID生成器,具体实现步骤如下:[0009]1)修改配置文件:在服务进程启动之前,需配置好生成器的主要参数如端口、服务注册组件IP、生成ID的接口元数据信息和节点主从信息;[0010]2)启动服务进程,按照如下步骤实现:[0011]第1步,读取配置文件,获取服务注册组件IP和端口,建立连接并读取所负责的数据库表和初始值,保存在本地缓存中;[0012]第2步,启动端口监听,读取配置文件中的端口信息并启动Socket监听;[0013]第3步,在启动完成后将端口、运行状态信息同步至服务注册组件;[0014]第4步,执行ID数据同步机制,每生成1个ID,执行异步方法将最新生成ID通过本地队列同步至服务注册组件;
[0015]3)执行异常处理机制:如果当前的服务出现任何异常或错误信息,将运行状态设置为不可用,将状态信息同步至服务注册组件,并将当前的从节点自动切换为主节点,当前主节点设置不可用的从节点,并发送异常信息到运维人员,通知其快速修复,故障修复完成并能够正常工作后,将从节点设置为可用状态;[0016](3)从客户端调用并获取ID,具体实现步骤如下:
3
CN 107451254 A[0017]
说 明 书
2/3页
1)修改配置文件:主要设置服务注册组件的IP及端口和生成ID的接口元数据信
息;
2)初始化客户端:从配置文件读取服务注册组件的IP及端口信息后,建立连接并
读取表名与ID生成服务器的映射信息到本地缓存;[0019]3)获取ID值:指定某数据库表名参数,通过表名从本地缓存中获取ID生成服务器的信息,按照指定的IP和端口信息建立连接,通过生成ID的元数据信息所包含的方法生成并获取ID。
[0020]优选的,所述管理中心的主要职责是通过使用分布式服务注册组件,管理ID生成器的节点信息,以及数据库表与ID生成器的映射关系,所述管理中心提供可视化或接口访问的操作。
[0021]优选的,所述ID生成器的主要职责是在分布式的环境下生成唯一的ID。[0022]采用以上技术方案的有益效果是:本发明结构是一种生成数据库表数据唯一标识的方法,将生成数据库表数据唯一标识ID的职责放在应用层而非数据库端,使数据库回归到数据存储的主要职责上,有效降低对CPU计算资源的利用,ID生成器具备数值型、唯一性和有序性的同时,更提供了较高的并发性能和吞吐量,有效降低针对数据库资源的访问压力,在分布式数据库及集群上提供了良好的支持,整体上,在互联网应用技术架构的构建中,具备较高的参考和应用价值。附图说明
[0023]图1是一种生成数据库表数据唯一标识的方法的原理框图。
具体实施方式
[0024]下面对照附图,通过对实施例的描述,对本发明的具体实施方式作进一步详细的说明,目的是帮助本领域的技术人员对本发明的构思、技术方案有更完整、准确和深入的理解,并有助于其实施。
[0025]图1出示本发明的具体实施方式:一种生成数据库表数据唯一标识的方法,包括管理中心、ID生成器和客户端,所述管理中心设有分布式服务注册组件,按照如下步骤实现:[0026](1)启动管理中心:[0027]1)编辑节点信息:通过增减ID生成器的节点来提供横向扩容或缩容的能力;[0028]2)输入数据表名:以数据库表名作为唯一标识符Key,根据当前活跃的生成器节点数,通过Hash算法来自动分配对应的节点,并将Key与节点信息存储至分布式服务注册组件中;
[0029]3)更新节点信息:ID生成器与服务注册组件建立长连接后,如ID生成器的服务状态出现错误或异常,会将自身的服务状态信息同步到注册组件;[0030](2)搭建分布式的ID生成器,具体实现步骤如下:[0031]1)修改配置文件:在服务进程启动之前,需配置好生成器的主要参数如端口、服务注册组件IP、生成ID的接口元数据信息和节点主从信息;[0032]2)启动服务进程,按照如下步骤实现:[0033]第1步,读取配置文件,获取服务注册组件IP和端口,建立连接并读取所负责的数
4
[0018]
CN 107451254 A
说 明 书
3/3页
据库表和初始值,保存在本地缓存中;[0034]第2步,启动端口监听,读取配置文件中的端口信息并启动Socket监听;[0035]第3步,在启动完成后将端口、运行状态信息同步至服务注册组件;[0036]第4步,执行ID数据同步机制,每生成1个ID,执行异步方法将最新生成ID通过本地队列同步至服务注册组件;
[0037]3)执行异常处理机制:如果当前的服务出现任何异常或错误信息,将运行状态设置为不可用,将状态信息同步至服务注册组件,并将当前的从节点自动切换为主节点,当前主节点设置不可用的从节点,并发送异常信息到运维人员,通知其快速修复,故障修复完成并能够正常工作后,将从节点设置为可用状态;[0038](3)从客户端调用并获取ID,具体实现步骤如下:[0039]1)修改配置文件:主要设置服务注册组件的IP及端口和生成ID的接口元数据信息;
[0040]2)初始化客户端:从配置文件读取服务注册组件的IP及端口信息后,建立连接并读取表名与ID生成服务器的映射信息到本地缓存;[0041]3)获取ID值:指定某数据库表名参数,通过表名从本地缓存中获取ID生成服务器的信息,按照指定的IP和端口信息建立连接,通过生成ID的元数据信息所包含的方法生成并获取ID。
[0042]本实施例中,所述管理中心的主要职责是通过使用分布式服务注册组件,管理ID生成器的节点信息,以及数据库表与ID生成器的映射关系,所述管理中心提供可视化或接口访问的操作。
[0043]本实施例中,所述ID生成器的主要职责是在分布式的环境下生成唯一的ID。[0044]基于上述,本发明结构是一种生成数据库表数据唯一标识的方法,将生成数据库表数据唯一标识ID的职责放在应用层而非数据库端,使数据库回归到数据存储的主要职责上,有效降低对CPU计算资源的利用,ID生成器具备数值型、唯一性和有序性的同时,更提供了较高的并发性能和吞吐量,有效降低针对数据库资源的访问压力,在分布式数据库及集群上提供了良好的支持,整体上,在互联网应用技术架构的构建中,具备较高的参考和应用价值。
[0045]以上结合附图对本发明进行了示例性描述,显然,本发明具体实现并不受上述方式的限制,只要是采用了本发明的方法构思和技术方案进行的各种非实质性的改进;或未经改进,将本发明的上述构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
5
CN 107451254 A
说 明 书 附 图
1/1页
图1
6
因篇幅问题不能全部显示,请点此查看更多更全内容