CN108874946B - 一种id管理方法及装置 - Google Patents
一种id管理方法及装置 Download PDFInfo
- Publication number
- CN108874946B CN108874946B CN201810567915.9A CN201810567915A CN108874946B CN 108874946 B CN108874946 B CN 108874946B CN 201810567915 A CN201810567915 A CN 201810567915A CN 108874946 B CN108874946 B CN 108874946B
- Authority
- CN
- China
- Prior art keywords
- pool
- data table
- service data
- acquisition request
- local
- 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
Links
Images
Abstract
本申请提供的一种ID管理方法及装置,其中所述方法应用于终端侧,包括:根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。本申请的ID管理方法可以使得终端侧在接收到ID获取请求时,无需向服务器侧发送获取ID请求,可以直接调用本地方法获得ID,工作效率高并且耗时少。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种ID管理方法及装置、一种计算设备及存储介质。
背景技术
随着计算机科学技术不断发展,现如今互联网产品业务场景越来越复杂,当业务发展到达一定程度时,传统的单个数据库单张表存储某个业务数据的设计,将不能灵活支撑业务扩展。
为了满足大流量高并发业务场景,对于某一业务来说,单库单表的并发能力将是非常有限的。从业务技术方面考虑,进行分库分表将使得数据库可以无限扩展,并发能力也不再局限于单台数据库,理论上将是分库数量*n。
然而,对业务数据进行分库分表的过程中,就必须要保证各个分库分表中的数据记录ID全局唯一。为了解决这个问题,我们需要设计一款分布式、脱离业务的ID生成器,为业务提供分库分表全局唯一ID的同时,也能使业务模块能够以最小成本进行分库分表,从而满足复杂多变的业务场景。
现有技术的实现方案是当终端侧业务需要往数据库插入一条记录时,按数据表映射的业务名称,从本地Map数据结构中查找对应的ID缓冲池,根据当前ID序号进行加1,得到下一个可用ID序号,当本地没有可用的ID缓冲池或者ID缓冲池内的ID已耗尽,则向ID生成器服务端重新请求ID缓冲池。本地多个请求需要同时获取同一个表的ID时,需要对ID缓冲池加锁获取,获取完成后再进行释放。
但是现有技术的实现方案无法实时调整ID缓冲池容量大小,当业务量增长过快,导致ID缓冲池过快耗尽,此时程序需要重新请求ID生成器服务端获取新的ID缓冲池,当业务量增长越快,请求ID生成器服务端的频率就越快,无形中为ID生成器服务端造成意想不到的压力。
另外,终端侧ID缓冲池内的ID耗尽后,终端侧重新发起远程调用向ID生成器服务端获取ID缓冲池,这将会导致程序阻塞。假如ID缓冲池的容量大小是10,那么意味着,每插入10条记录,将会触发一次终端侧发起远程调用向ID生成器服务端获取ID缓冲池的请求,导致终端侧程序严重阻塞。
发明内容
有鉴于此,本申请实施例提供了一种ID管理方法及装置、一种计算设备及存储介质,以解决现有技术中存在的技术缺陷。
本申请实施例公开了一种ID管理方法,应用于终端侧,包括:
根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。
可选地,所述方法还包括:
若所述本地ID缓冲池队列中可用ID池中的剩余ID的数量小于第一预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
可选地,所述方法还包括:
若所述本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
可选地,所述根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列之后,还包括:
若所述本地ID缓冲池队列中无可用ID池,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
另一方面,本申请还提供了一种ID管理方法,应用于服务器侧,包括:
接收ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
根据所述业务数据表标识确定对应的ID池配置规则;
根据所述ID池配置规则生成ID池;
发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
可选地,所述接收ID池获取请求之后,还包括:
若确定不存在与所述业务数据表标识对应的ID池配置规则,则返回失败提示信息。
可选地,所述方法还包括:
按照预设时间阈值更新所述业务数据表标识对应的ID池配置规则。
另一方面,本申请还提供了一种ID管理装置,应用于终端侧,包括:
第一确定模块,配置为根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
返回模块,配置为若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。
可选地,所述装置还包括:
请求模块,配置为若所述本地ID缓冲池队列中可用ID池中的剩余ID的数量小于第一预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
第一接收模块,配置为接收服务器侧根据所述业务数据表标识返回的ID池。
另一方面,本申请还提供了一种ID管理装置,应用于服务器侧,包括:
第二接收模块,配置为接收ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
第二确定模块,配置为根据所述业务数据表标识确定对应的ID池配置规则;
生成模块,配置为根据所述ID池配置规则生成ID池;
发送模块,配置为发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
另一方面,本申请还提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表;或者
接收ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
根据所述业务数据表标识确定对应的ID池配置规则;
根据所述ID池配置规则生成ID池;
发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
另一方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现如上所述ID管理方法的步骤。
本申请提供的一种ID管理方法及装置、一种计算设备及存储介质,其中所述方法应用于终端侧,包括:根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。本申请的ID管理方法可以使得终端侧在接收到ID获取请求时,无需向服务器侧发送获取ID请求,可以直接调用本地方法获得ID,工作效率高并且耗时少。
附图说明
图1为本申请一实施例提供的一种计算设备的结构示意图;
图2为本申请一实施例提供的一种ID管理方法的流程图;
图3为本申请一实施例提供的一种ID管理方法的流程图;
图4为本申请一实施例提供的一种ID池生成方法的流程图;
图5为本申请一实施例提供的一种ID管理方法流程图;
图6为本申请一实施例提供的一种ID管理方法的流程图;
图7为本申请一实施例提供的一种ID管理装置的结构示意图;
图8为本申请一实施例提供的一种ID管理装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,提供了一种ID管理方法及装置、一种计算设备及存储介质,在下面的实施例中逐一进行详细说明。
图1是示出了本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于包括存储器110、处理器120及存储在存储器110上并可在处理器120上运行的计算机指令。
虽然图1中没有示出,但是应该知道,计算设备100还可以包括网络接口,网络接口使得计算设备100能够经由一个或多个网络通信。这些网络的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。网络接口可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。计算设备可以通过网络接口访问页面。
在本申请的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。
其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的ID管理方法的示意性流程图,所述ID管理方法应用于终端侧,包括步骤201至步骤202。
步骤201:根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识。
本申请实施例中,每个所述业务数据表均设置有一个唯一的业务数据表标识,并且所述业务数据表标识与所述本地ID缓冲池队列为一一映射关系,每一个所述业务数据表的业务数据表标识均对应一个本地ID缓冲池队列。
所述终端侧接收到所述业务数据表的ID获取请求之后,根据所述业务数据表的ID获取请求中携带的业务数据表标识查找到对应的本地ID缓冲池队列。
步骤202:若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。
本申请实施例中,所述本地ID缓冲池队列中存在至少两个ID池,每个所述ID池中存在多个ID,每个所述ID均是唯一的。
实际应用中,首先根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,若所述业务数据表不存在对应的本地ID缓冲池队列,则需要重新创建本地ID缓冲池队列,然后再向服务器侧发送ID池获取请求,补充所述本地ID缓冲池队列中的ID池。
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
将所述ID池以队列的方式放入本地ID缓冲池队列中,当业务数据表的ID获取请求确定对应的本地ID缓冲池队列后,若所述本地ID缓冲池队列中有可用ID池,则将所述本地ID缓冲池队列中位于队头的可用ID池作为当前ID池,然后根据所述业务数据表标识将所述当前ID池中的ID返回至对应的业务数据表。所述当前ID池中的ID耗尽之后,所述当前ID池删除,再次接受到业务数据表的ID获取请求后,会顺序获取所述当前ID池紧邻的下一个可用ID池中的ID返回给对应的业务数据表使用。
其中,所述可用ID池中的ID也是按照队列形式存放在所述可用ID池中,所述可用ID池中的ID均为被剪切获取,即被获取的ID在所述可用ID池中被删除。
本申请实施例的ID管理方法可以使得终端侧在接收到业务数据表的ID获取请求时,无需即刻向服务器侧发送获取ID请求,可以直接调用本地方法获得ID,工作效率高并且耗时少。
参见图3,本申请一实施例提供了一种ID管理方法,应用于终端侧,包括步骤301至步骤304。
步骤301:根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识。
步骤302:若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。
本申请实施例中,步骤301至步骤302的实现方式与上述实施例中步骤201至步骤202相同,在此不再赘述。
步骤303:若所述本地ID缓冲池队列中可用ID池中的剩余ID的数量小于第一预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识。
本申请实施例中,根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表之后,检测所述本地ID缓冲池队列中可用ID池中的剩余ID的数量是否小于第一预设阈值,若是,则发送ID池获取请求至服务器侧,若否,则不进行任何处理。
其中,所述第一预设阈值可以根据实际需求进行设置,例如2个、3个或4个等,本申请对此不作任何限定。
参见图4,存在table1ID缓冲池队列,所述table1ID缓冲池队列中预先存在IDpool1和ID pool2。
首先通过线程1,根据table1的ID获取请求确定对应的table1ID缓冲池队列,其中,所述table1的ID获取请求中携带有table1标识;
若确定所述table1ID缓冲池队列中有可用的ID pool1和ID pool2,则将位于所述table1ID缓冲池队列队头的可用ID pool1作为current pool使用;
根据所述table1标识将所述current pool中的ID返回至对应的table1;
然后判断所述current pool中的可用ID是否小于第一预设阈值,例如3个,若所述current pool中的可用ID小于3个,则通过线程2发起远程过程调用(Remote ProcedureCall,RPC),异步发送ID池获取请求至服务器侧,然后将服务器侧返回的ID pooln放入table1ID缓冲池队列的队尾。
步骤304:接收服务器侧根据所述业务数据表标识返回的ID池。
实际应用中,步骤303和步骤304可以独立存在,在终端侧没有ID获取请求时也可以进行可用ID的检测,可以保证本地ID缓冲池队列中的可用ID池中时刻保持足够的ID,避免本地ID缺失的情况发生。
本申请一实施例中,根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表之后,还可以包括:
若所述本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
本申请实施例中,采用判断可用ID池的数量,检测本地ID缓冲池队列中的可用ID池,也可以实现本地ID缓冲池队列中时刻有足够的可用ID池,避免可用ID池缺失的情况发生,就可以避免可用ID的缺失。
本申请实施例中,采用队列存储ID池技术,将ID池预先存储在本地,实现调用本地方法就能获取到ID,并且在为业务数据表返回ID的情况下,会及时检测本地ID缓冲池队列中的可用ID池中的ID数量,使得所述ID池中的ID数量一直保持在第一预设阈值以上,保证本地预留足够数量的ID,让终端侧每一次获取ID的时候,能够实现直接调用本地方法,即可获取到全局唯一的ID,避免每次需要ID时均向服务器侧发起远程请求,造成线路堵塞,并且极大的降低了工作效率。
本申请一实施例中,若所述本地ID缓冲池队列中无可用ID池,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
本申请实施例中,接收服务器侧根据所述业务数据表标识返回的ID池之后,还包括:
若所述本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值,则再次发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识。
本申请实施例的ID管理方法可以及时检测本地ID缓冲池队列中的可用ID池数量,使得可用ID池的数量一直保持在第二预设阈值以上,保证本地预留足够数量的可用ID池,避免需要ID时,可用ID池中的ID数量不够,需要向服务器侧发起远程请求,造成线路堵塞,并且极大的降低了工作效率。
参见图5,本申请一实施例提供了一种ID管理方法,应用于服务器侧,包括步骤501至步骤504。
步骤501:接收ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识。
本申请实施例中,所述接收ID池获取请求之后,还包括:
若确定不存在与所述业务数据表标识对应的ID池配置规则,则返回失败提示信息,其中,所述失败提示信息可以为短信、弹窗、邮件或语音提示等。
步骤502:根据所述业务数据表标识确定对应的ID池配置规则。
本申请实施例中,每个所述业务数据表均设置有一个唯一的业务数据表标识,并且所述业务数据表标识与所述ID池配置规则为一一映射关系,每一个所述业务数据表的业务数据表标识均对应一个ID池配置规则。
本申请实施例中,所述ID池配置规则包括ID池容量大小、最大ID值、最小ID值和/或起始ID值。
其中,所述ID池容量大小为根据对应的业务数据表一次获取的ID的数量确定,若对应的业务数据表一次需要获取100个ID,那么所述ID池容量大小就需要设置为可以同时容纳100个以上数量的ID;
所述最大ID值可以根据业务数据表的字段长度设置,若业务数据表的字段为5位,则所述最大ID值即为99999;
所述最小ID值为根据当前已使用的ID确定的,例如ID为5位的数字组成,当前已使用到数字为4999的ID,那么所述最小ID即为5000,若查询不到当前已使用的ID,则将起始ID值作为最小ID值使用;
所述起始ID值为按照预设字符和长度设置的ID值,例如服务器侧预先设置ID按照5位的数字进行生成,所述起始ID值可以为00000。
步骤503:根据所述ID池配置规则生成ID池。
本申请实施例中,根据所述ID池配置规则生成的ID池中的ID可以根据所述ID容量大小、预设的ID池步长和所述当前ID的序号生成。
举例说明,若所述ID池容量大小为5,存在所述业务数据表标识已使用的ID为10000,预设的所述ID池的步长为3,则生成的ID池中的ID见表1。
表1
ID序号 | ID |
1 | 10001 |
2 | 10004 |
3 | 10007 |
4 | 10010 |
5 | 10013 |
本申请实施例中,ID可以采用多种形式进行生成,例如随机数、随机字符串或者是随机数和随机字符串的组合等,只要生成的ID具有唯一性,可以唯一区分业务数据表中插入的数据即可,本申请对此不作任何限定。
步骤504:发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
本申请实施例中,发送存在有若干个ID的所述ID池至终端侧,根据所述ID池携带的业务数据表标识可以准确的将所述ID池发送给对应的业务数据表,然后放入所述业务数据表对应的本地ID缓冲池队列的队尾。
本申请实施例中,为了适应业务流量的变化,可以按照预设时间阈值更新所述业务数据表标识对应的ID池配置规则,实时调整ID池配置规则,调整ID池容量大小,可以减少或避免不合理的RPC服务调用引起的性能损耗,例如每天更新一次所述业务数据表标识对应的ID池配置规则或每周更新一次所述业务数据表标识对应的ID池配置规则,若业务流量较大,则将ID池容量大小调整大一点,若业务流量较小,则将ID池容量大小调整小一点,根据实际需求对所述ID池配置规则进行更新,本申请对此不作任何限定。
参见图6,本申请一实施例提供了一种ID管理方法,从终端侧和服务器侧的系统交互对所述ID管理方法进行了详细描述,包括步骤601至步骤613。
步骤601:终端侧接收业务数据表的ID获取请求,其中,所述业务数据表的ID获取请求中携带有业务数据表标识。
步骤602:根据所述业务数据表标识确定对应的本地ID缓冲池队列。
步骤603:查找所述本地ID缓冲池队列中的ID池。
步骤604:判断所述ID池是否可用,若是,则执行步骤605;若否,则执行步骤606。
步骤605:判断所述ID池中的ID数量是否小于第一预设阈值,若是,则异步执行步骤606;若否,则执行步骤607。
步骤606:发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识。
步骤607:根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。
步骤608:将返回的ID插入业务数据表,并记录存储在业务数据库中。
步骤609:服务器侧接收到ID池获取请求之后,根据所述业务数据表标识确定对应的ID池配置规则。
本申请实施例中,为了适应业务流量的变化,还可以按照预设时间阈值更新所述业务数据表标识对应的ID池配置规则。具体地,准实时同步配置的意思为服务器侧的ID池配置规则中心采用的是异步定时任务检测ID池规则配置中心的ID池配置规则,当ID池规则配置中心侧的ID池配置规则根据业务需求发生更新的情况下,服务器侧的ID池配置规则也跟随实时更新。实际应用中,因为服务器侧的ID池配置规则中心采用的是异步定时任务检测ID池规则配置中心侧的ID池配置规则,并非实时同步检测,因此服务器侧的ID池配置规则更新时会有1分钟左右的时间延迟,但不影响ID池规则配置中心侧的ID池规则配置中心和服务器侧的ID池配置规则中心实现准实时同步的效果。
步骤610:查询当前的ID序号。
步骤611:将当前的ID序号和预设的ID池步长发送至ID生成器,然后根据当前的ID序号和预设的ID池的步长更新ID序号。
步骤612:将更新的ID序号放入ID池,即为生成ID池。
步骤613:根据所述业务数据表标识将生成的ID池发送至终端侧对应的本地ID缓冲池队列的队尾。
本申请实施例提供的ID管理方法,可以使得终端侧直接调用本地方法就能获取ID,效率高且耗时少,服务器侧还提供了定时更新ID池配置规则机制,使得ID池配置参数可在短时间内响应业务的需求进行变更,减少或避免不合理的RPC服务调用引起的性能损耗。
参见图7,本申请还提供了一种ID管理装置,应用于终端侧,包括:
第一确定模块701,配置为根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
返回模块702,配置为若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表。
可选地,所述装置还包括:
请求模块,配置为若所述本地ID缓冲池队列中可用ID池中的剩余ID的数量小于第一预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
第一接收模块,配置为接收服务器侧根据所述业务数据表标识返回的ID池。
本申请实施例的ID管理装置可以使得终端侧在接收到业务数据表的ID获取请求时,无需即刻向服务器侧发送获取ID请求,可以直接调用本地方法获得ID,工作效率高并且耗时少。
参见图8,本申请还提供了一种ID管理装置,应用于服务器侧,包括:
第二接收模块801,配置为接收ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
第二确定模块802,配置为根据所述业务数据表标识确定对应的ID池配置规则;
生成模块803,配置为根据所述ID池配置规则生成ID池;
发送模块804,配置为发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
本申请实施例的ID管理装置可以使得服务器侧在接收到终端侧发送的ID池获取请求时,按照预设的ID池配置规则生成ID池,减少或避免不合理的RPC服务调用引起的性能损耗。
上述为本实施例的一种ID管理装置的示意性方案。需要说明的是,该ID管理装置的技术方案与上述的ID管理方法的技术方案属于同一构思,ID管理装置的技术方案未详细描述的细节内容,均可以参见上述ID管理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述ID管理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的ID管理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述ID管理方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (11)
1.一种ID管理方法,其特征在于,应用于终端侧,包括:
根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表;
若所述本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;接收服务器侧根据所述业务数据表标识返回的ID池,所述ID池是根据业务数据表标识ID对应的ID池配置规则生成的,所述ID池配置规则按照预设时间阈值被更新。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述本地ID缓冲池队列中可用ID池中的剩余ID的数量小于第一预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
3.根据权利要求1所述的方法,其特征在于,所述根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列之后,还包括:
若所述本地ID缓冲池队列中无可用ID池,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
接收服务器侧根据所述业务数据表标识返回的ID池。
4.一种ID管理方法,其特征在于,应用于服务器侧,包括:
在客户端的本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值的情况下,接收所述客户端发送的ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
根据所述业务数据表标识确定对应的ID池配置规则,其中,所述ID池配置规则按照预设时间阈值被更新;
根据所述ID池配置规则生成ID池;
发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
5.根据权利要求4所述的方法,其特征在于,所述接收ID池获取请求之后,还包括:
若确定不存在与所述业务数据表标识对应的ID池配置规则,则返回失败提示信息。
6.根据权利要求4所述的方法,其特征在于,还包括:
按照预设时间阈值更新所述业务数据表标识对应的ID池配置规则。
7.一种ID管理装置,其特征在于,应用于终端侧,包括:
第一确定模块,配置为根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
返回模块,配置为若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表;
若所述本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;接收服务器侧根据所述业务数据表标识返回的ID池,所述ID池是根据业务数据表标识ID对应的ID池配置规则生成的,所述ID池配置规则按照预设时间阈值被更新。
8.根据权利要求7所述的装置,其特征在于,还包括:
请求模块,配置为若所述本地ID缓冲池队列中可用ID池中的剩余ID的数量小于第一预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;
第一接收模块,配置为接收服务器侧根据所述业务数据表标识返回的ID池。
9.一种ID管理装置,其特征在于,应用于服务器侧,包括:
第二接收模块,配置为在客户端的本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值的情况下,接收所述客户端发送的ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
第二确定模块,配置为根据所述业务数据表标识确定对应的ID池配置规则,其中,所述ID池配置规则按照预设时间阈值被更新;
生成模块,配置为根据所述ID池配置规则生成ID池;
发送模块,配置为发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
10.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
根据业务数据表的ID获取请求确定对应的本地ID缓冲池队列,其中,所述业务数据表的ID获取请求中携带有业务数据表标识;
若所述本地ID缓冲池队列中有可用ID池,则根据所述业务数据表标识将所述可用ID池中的ID返回至对应的业务数据表;
若所述本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值,则发送ID池获取请求至服务器侧,其中,所述ID池获取请求中携带有业务数据表标识;接收服务器侧根据所述业务数据表标识返回的ID池,所述ID池是根据业务数据表标识ID对应的ID池配置规则生成的,所述ID池配置规则按照预设时间阈值被更新;或者
在客户端的本地ID缓冲池队列中的剩余可用ID池的数量小于第二预设阈值的情况下,接收所述客户端发送的ID池获取请求,其中,所述ID池获取请求中携带有业务数据表标识;
根据所述业务数据表标识确定对应的ID池配置规则,其中,所述ID池配置规则按照预设时间阈值被更新;
根据所述ID池配置规则生成ID池;
发送所述ID池至终端侧,其中,所述ID池携带有业务数据表标识。
11.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3或4-6任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810567915.9A CN108874946B (zh) | 2018-06-05 | 2018-06-05 | 一种id管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810567915.9A CN108874946B (zh) | 2018-06-05 | 2018-06-05 | 一种id管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874946A CN108874946A (zh) | 2018-11-23 |
CN108874946B true CN108874946B (zh) | 2021-09-24 |
Family
ID=64336372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810567915.9A Active CN108874946B (zh) | 2018-06-05 | 2018-06-05 | 一种id管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874946B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947015B (zh) * | 2019-03-15 | 2020-08-28 | 浙江中控技术股份有限公司 | 任务的执行方法及主控制器 |
CN113495888A (zh) * | 2020-04-03 | 2021-10-12 | 北京沃东天骏信息技术有限公司 | 一种标识管理方法和装置 |
CN111488382A (zh) * | 2020-04-16 | 2020-08-04 | 北京思特奇信息技术股份有限公司 | 一种数据调用方法、系统及电子设备 |
CN111741081A (zh) * | 2020-06-05 | 2020-10-02 | 安徽三实信息技术服务有限公司 | 一种分布式服务器管理系统 |
CN112395086B (zh) * | 2020-11-06 | 2022-03-08 | 北京五八信息技术有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN113065034B (zh) * | 2021-03-29 | 2022-11-18 | 上海安畅网络科技股份有限公司 | 一种分布式系统编号生成方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564247B1 (en) * | 1999-11-18 | 2003-05-13 | International Business Machines Corporation | System and method for registering user identifiers |
CN104317749A (zh) * | 2014-10-31 | 2015-01-28 | 小米科技有限责任公司 | 信息写入方法和装置 |
CN106372994A (zh) * | 2016-08-31 | 2017-02-01 | 北京炎黄新星网络科技有限公司 | 一种处理订单的方法和系统 |
CN106572165A (zh) * | 2016-10-26 | 2017-04-19 | 宜人恒业科技发展(北京)有限公司 | 一种分布式全局唯一id应用方法 |
-
2018
- 2018-06-05 CN CN201810567915.9A patent/CN108874946B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564247B1 (en) * | 1999-11-18 | 2003-05-13 | International Business Machines Corporation | System and method for registering user identifiers |
CN104317749A (zh) * | 2014-10-31 | 2015-01-28 | 小米科技有限责任公司 | 信息写入方法和装置 |
CN106372994A (zh) * | 2016-08-31 | 2017-02-01 | 北京炎黄新星网络科技有限公司 | 一种处理订单的方法和系统 |
CN106572165A (zh) * | 2016-10-26 | 2017-04-19 | 宜人恒业科技发展(北京)有限公司 | 一种分布式全局唯一id应用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108874946A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874946B (zh) | 一种id管理方法及装置 | |
CN110083650B (zh) | 一种基于元数据自发现的数据查询接口自动生成方法 | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
US20180268046A1 (en) | Data processing method and apparatus | |
CN102769640B (zh) | 用户信息的更新方法、服务器以及系统 | |
CN110837409A (zh) | 一种定时执行任务的方法和系统 | |
CN111949324A (zh) | 一种分布式序列号生成方法和装置 | |
US20170060922A1 (en) | Method and device for data search | |
CN113407560B (zh) | 更新消息处理方法、数据同步方法、配置信息配置方法 | |
CN113285884B (zh) | 流量控制方法及系统 | |
CN116455956B (zh) | 一种基于消息中间件的数据采集和数据回放的方法和系统 | |
CN104168174A (zh) | 一种传输信息的方法及装置 | |
CN111200640B (zh) | 基于客户端的上传方法以及客户端 | |
CN113297229A (zh) | 路由读请求、反馈报文的方法以及各自装置、数据库 | |
CN116016561A (zh) | 数据的同步方法和装置 | |
WO2018077138A1 (zh) | 数据配置方法、索引管理方法、相关装置以及计算设备 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理系统以及处理装置 | |
CN110134547B (zh) | 一种基于中间件的重复数据删除方法和相关装置 | |
CN115269730A (zh) | 宽表同步方法及装置 | |
CN112035413B (zh) | 元数据信息查询方法、装置及存储介质 | |
CN114385596A (zh) | 数据处理方法及装置 | |
CN113126888B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN113722152A (zh) | 一种数据增量备份方法、装置、设备及存储介质 | |
CN112217712A (zh) | 消息多端同步的方法、客户端 | |
CN113297164A (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 |