CN110019275A - 主键生成方法、装置、设备及介质 - Google Patents
主键生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110019275A CN110019275A CN201711494493.9A CN201711494493A CN110019275A CN 110019275 A CN110019275 A CN 110019275A CN 201711494493 A CN201711494493 A CN 201711494493A CN 110019275 A CN110019275 A CN 110019275A
- Authority
- CN
- China
- Prior art keywords
- major key
- preemption
- major
- request
- camp
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种主键生成方法、装置、设备及介质,其中方法包括:根据所发起的主键预占请求,判断本地是否存在空闲主键;若本地不存在空闲主键,则向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合;根据所述主键管理平台返回的所述预占主键集合生成主键值。本发明能够提高主键生成的性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种主键生成方法、装置、设备及介质。
背景技术
目前大部分应用系统都需要唯一性ID、唯一性主键,如客户信息的客户编码、企业信息的企业编码等。随着互联网、云计算技术的发展,很多应用系统都在向分布式环境演进,从而支持更高的业务吞吐量和请求并发量。现有的数据主键的生成方法主要依赖集中化的服务器或多服务器节点协商来确保主键编码的唯一性,这种主键生成方法在分布式环境中常常是应用系统的主要性能瓶颈因素,是导致应用系统并发量上不去的关键原因之一。
现有的技术方案主要有两种:基于中心数据库的数据主键生成方案;基于分布式多节点协商的主键生成方案。下面分别说明:
1、基于中心数据库的数据主键生成方案,在该种方案中,所有的分布式应用节点都向中心数据库发起主键请求,由中心数据库负责主键生成的唯一性,确保事务一致性。这种模式下,中心数据库的主键生成并发压力较大,容易造成排队或请求响应超时情况。
2、基于分布式多节点协商的主键生成方案,在该方案中,各个应用节点都是对等的,没有集中的主键生成服务器。主键通过与其他应用节点协商的方式生成,大致步骤如下:
1)分布式应用节点1收到主键生成请求后,先预生成主键;
2)分布式应用节点1将该主键发送到其他对等节点,并协商该主键是否唯一、无冲突;
3)如果协商成功,则生成该主键;如果协商失败则继续预生成主键,并向其他对等节点协商,直到成功为止。
该方案避免了中心服务器的并发压力,但是采用对等节点协商的方式容易造成网络堵塞、重复协商问题,并导致主键生成的性能急剧下降。
发明内容
本发明实施例提供了一种主键的生成方法、装置、设备及介质,能够提高主键生成的性能。
第一方面,本发明实施例提供了一种主键的生成方法,所述方法包括:
根据所发起的主键预占请求,判断本地是否存在空闲主键;
若本地不存在空闲主键,则向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合;
根据所述主键管理平台返回的所述预占主键集合生成主键值。
优选的是,所述方法还包括:
将所生成的主键值记录在本地,并定时向所述主键管理平台反馈预占主键的状态。
优选的是,所述方法还包括:若本地存在空闲主键,则在本地生成主键值。
优选的是,所述主键预占请求包括业务类型集合、分布式应用节点信息。
优选的是,所述主键值采用MD5加密算法进行加密。
第二方面,本发明实施例提供了一种主键的生成方法,所述方法包括:
接收分布式应用系统发送的主键预占请求;
根据所述主键预占请求,获取空闲主键集合;
根据策略预占主键,得到预占主键集合;其中,所述策略包括对于不同业务类型所获取的主键数量;
将所述预占主键集合反馈给所述分布式应用系统。
优选的是,所述方法还包括:
接收所述分布式应用系统所反馈预占主键的状态,以对所述分布式应用系统中的空闲主键进行回收。
优选的是,所述主键预占请求包括业务类型集合、分布式应用节点信息。
第三方面,本发明实施例提供了一种分布式应用系统,所述系统包括:
判断模块,用于根据所发起的主键预占请求,判断本地是否存在空闲主键;
发送模块,用于在所述判断模块判断出本地不存在空闲主键,向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合;
主键生成模块,用于根据所述主键管理平台返回的所述预占主键集合生成主键值。
第四方面,本发明实施例提供了一种主键管理平台,所述平台包括:
接收模块,用于接收分布式应用系统发送的主键预占请求;
获取模块,用于根据所述主键预占请求,获取空闲主键集合;
主键预占模块,用于根据策略预占主键,得到预占主键集合;其中,所述策略包括对于不同业务类型所获取的主键数量;
反馈模块,用于将所述预占主键集合反馈给所述分布式应用系统。
第五方面,本发明实施例提供了一种主键生成系统其包括上述的分布式应用系统,和/或上述的主键管理平台。
第六方面本发明实施例提供了一种主键生成设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面和/或第二方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面和/或第二方面的的方法。
本发明实施例提供的主键生成方法、装置、设备及介质,通过数据主键预占的方法,将并发与资源竞争压力有效地分散到各个分布式应用节点,大大提高了分布式应用系统的并发性能与吞吐量。解决了现有主键生成方法在分布式环境下容易导致请求排队、响应超时、网络堵塞、重复协商问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例中的对于分布式应用系统的主键的生成方法;
图2为本发明另一实施例中的对于主键管理平台的主键的生成方法;
图3为本发明一个实施例的空闲主键集合存储示意图;
图4为本发明一个实施例的客户信息主键集预占前的存储示意图;
图5为本发明一个实施例的客户信息主键集预占后的存储示意图;
图6为本发明另一实施例中的分布式预占模式的数据主键生成方法;
图7为本发明另一实施例中的分布式预占模式的数据主键生成系统;
图8为本发明一个实施例的主键生成方法的工作场景示例;
图9为本发明另一实施例的分布式预占模式的数据主键生成系统的框架图;
图10为本发明另一实施例中的分布式预占模式的数据主键生成设备。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例中提供了一种分布式预占模式的数据主键生成方法,该主键生成是通过分布式应用系统和主键管理平台进行交互实现的。以下分别从分布式应用系统和主键管理平台两侧对本实施例中的方法进行说明。
结合图1所示,对于分布式应用系统,本实施例中的主键的生成方法具体包括如下步骤:
S01、发起主键预占请求;其中,主键预占请求包括:业务类型集合、分布式应用节点信息。
具体的,分布式应用系统可以在应用启动时、或预占的主键使用完后发起预占请求。一次主键预占请求可以预占多个实体的主键集,这样可以避免多次发起主键预占请求,提高分布式应用的并发性能。
S02、根据所接收的主键预占请求,判断本地是否存在空闲主键。
具体的,分布式应用系统首先在本地检查预占的主键集合是否都使用完了。
S03、若本地不存在空闲主键,则向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合。
具体的,如果还存在空闲的主键集合,则直接在本地即可生成主键,无需再向主键管理平台发起请求,这样大大提高的系统并发量和吞吐量。如果本地的预占的主键都已使用完,则向主键管理平台发起预占请求,申请一批空闲的主键集合。
S04、根据主键管理平台返回的所述预占主键集合生成主键值。
具体的,分布式应用系统支持多种格式的数据主键生成,如:业务前缀+数字序列,时间前缀+数字序列等。支持定长、不定长的主键数据生成,对于定长数据主键采用前补、或后补固定字母、数字。其中,主键值使用MD5加密算法进行加密,确保唯一性。
上述方法中通过数据主键预占的方法,将并发与资源竞争压力有效地分散到各个分布式应用节点,大大提高了分布式应用系统的并发性能与吞吐量。解决了现有主键生成方法在分布式环境下容易导致请求排队、响应超时、网络堵塞、重复协商问题。
结合图2所示,对于主键管理平台,本实施例中的主键生成方法具体包括如下步骤:
S11、接收分布式应用系统发送的主键预占请求;
根据所述主键预占请求,获取空闲主键集合;主键预占请求内容包括:业务类型集合、分布式应用节点信息。采用JSON格式,例如:
{"业务类型":["客户信息","订单信息","商品信息","合同信息"],
"应用节点IP":"10.153.10.100"}。
其中,空闲主键集合的存储如图3所示。图3中,灰色部分表示主键已经被预占,白色部分表示为空闲主键集合。根据主键预占请求中的业务类型查找主键集合数据,然后按顺序遍历集合,找到空闲主键集内主键数量达到一次性预占数量(策略配置)为止。例如,查找2000个客户信息空闲主键结果为图3中的客户信息主键集合中的1001-2500、2601-3102。
S12、根据策略预占主键,得到预占主键集合;其中,所述策略包括对于不同业务类型所获取的主键数量;其中,对于一次性预占多少数量的主键是可以配置的,预占策略负责管理每种业务类型每次预占的主键数量。根据预占策略和空闲主键集合即可以执行预占操作,例如,图4和图5分别示出了客户信息主键集合预占前和客户信息主键集合预占后的存储示意图。
S13、将所述预占主键集合反馈给所述分布式应用系统。其JSON格式表达如下:
{
"客户信息":["1001,2500","2601,3102"],
"订单信息":"5000,6500"。
上述方法中通过数据主键预占的方法,将并发与资源竞争压力有效地分散到各个分布式应用节点,大大提高了分布式应用系统的并发性能与吞吐量。解决了现有主键生成方法在分布式环境下容易导致请求排队、响应超时、网络堵塞、重复协商问题。
为了更清楚本发明实施例中的主键生成方法,具体结合实施例2进行说明。
结合图6所示,本发明实施例中提供了一种分布式预占模式的数据主键生成方法,该主键生成是通过分布式应用系统和主键管理平台进行交互实现的。该方法具体包括如下步骤:
S21、分布式应用系统发起主键预占请求;其中,主键预占请求包括:业务类型集合、分布式应用节点信息。
具体的,分布式应用系统可以在应用启动时、或预占的主键使用完后发起预占请求。一次主键预占请求可以预占多个实体的主键集,这样可以避免多次发起主键预占请求,提高分布式应用的并发性能。
S22、分布式应用系统根据所接收的主键预占请求,判断本地是否存在空闲主键。
具体的,首先在分布式应用系统本地检查预占的主键集合是否都使用完了,如果还存在空闲的主键集合,则直接在本地即可生成主键,无需再向主键管理平台发起请求,这样大大提高的系统并发量和吞吐量。
如果本地的预占的主键都已使用完,则向主键管理平台发起预占请求,申请一批空闲的主键集合。
S23、主键管理平台接收到主键预占请求,检索未分配的主键集合,并根据策略预占一段范围的主键。主键预占模块采用事物一致性和原子性控制,每次只能有一个请求被处理,其他请求排队。
其中,根据主键预占请求中的业务类型查找主键集合数据,然后按顺序遍历集合,找到空闲主键集内主键数量达到一次性预占数量(策略配置)为止。
其中,根据策略预占主键具体包括:一次性预占多少数量的主键是可以配置的,预占策略负责管理每种业务类型每次预占的主键数量。
S24、主键管理平台将预占主键集合的结果发送给分布式应用系统。
S25、分布式应用系统的主键生成模块,根据所接收到的预占主键集合生成主键值。
具体的,分布式应用系统支持多种格式的数据主键生成,如:业务前缀+数字序列,时间前缀+数字序列等。支持定长、不定长的主键数据生成,对于定长数据主键采用前补、或后补固定字母、数字。其中,主键值使用MD5加密算法进行加密,确保唯一性。
S26、分布式应用系统将所生成的每一个主键都要在本地记录下来,以便定时向主键管理平台反馈预占主键的使用情况。
S27、主键管理平台根据分布式应用系统反馈的预占主键使用情况,定期更新空闲的主键集合,以便这些空闲的主键可以被充分使用。
预占主键回收规则:只能回收N-1次请求的预占主键。举例如下:
第一次请求:预占了主键集合为[1-1500];
第二次请求:预占了主键集合为[4000-5500];
预占主键使用集合为:[1-1000],[4000-5000];
这种情况下,只能回收[1000-1500]的预占主键集合。
上述方法中通过数据主键预占的方法,将并发与资源竞争压力有效地分散到各个分布式应用节点,大大提高了分布式应用系统的并发性能与吞吐量。解决了现有主键生成方法在分布式环境下容易导致请求排队、响应超时、网络堵塞、重复协商问题。
结合图7所示,本发明实施例提供了一种分布式预占模式的数据主键生成系统,该系统包括:分布式应用系统和主键管理平台。
其中,分布式应用系统包括:判断模块301、发送模块302、主键生成模块303;其中,判断模块301用于根据所接收的主键预占请求,判断本地是否存在空闲主键;发送模块302用于在所述判断模块判断出本地不存在空闲主键,向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合;主键生成模块303用于根据所述主键管理平台返回的所述预占主键集合生成主键值。
进一步的,该分布式应用系统还包括主键预占请求模块和记录模块;其中,主键预占请求模块用于发起主键预占请求;记录模块用于将所生成的主键值记录在本地,并定时向所述主键管理平台反馈预占主键的状态。
本发明实施例中的主键管理平台包括接收模块304、获取模块305、主键预占模块306、反馈模块307;其中,接收模块304用于接收分布式应用系统发送的主键预占请求;获取模块305用于根据所述主键预占请求,获取空闲主键集合;主键预占模块306用于根据策略预占主键得到预占主键集合;其中,所述策略包括对于不同业务类型所获取的主键数量;反馈模块307用于将所述预占主键集合反馈给所述分布式应用系统。
进一步的,本实施例中的主键管理平台还包括:主键回收模块,用于根据所接收所述分布式应用系统所反馈预占主键的状态,以对所述分布式应用系统中的空闲主键进行回收。
本实施例中的分布式预占模式的数据主键生成系统将并发与资源竞争压力有效地分散到各个分布式应用节点,大大提高了分布式应用系统的并发性能与吞吐量。解决了现有主键生成方法在分布式环境下容易导致请求排队、响应超时、网络堵塞、重复协商问题。
以下,结合具体应用场景对本发明上述各个实施例进行说明,如图8所示。
1、主键预占场景
101:应用系统发起主键预占请求,唯一编号假设为pk,例如:
{“客户信息”:[“1001,2500”,“2601,3102”],“订单信息”:“5000,6500”}。
102:主键查询模块查询本地空闲主键信息,若存在则返回可用的主键编号(102.1),若不存在,则请求主键管理平台,申请分配新的主键或主键集合(102.2)。
103:主键生成模块生成主键。
104:主键记录模块记录该主键已使用。
2、主键释放场景
201:分布式应用系统发起主键释放请求。
202:主键记录模块删除本地已记录的主键信息,标注为空闲。
203:反馈给主键管理平台,回收主键。
本发明另一实施例,提供了分布式预占模式的数据主键生成系统框架图,如图9所示。该系统主要包括五个模块:主键预占请求模块、检查本地是否有空闲主键模块、主键预占模块、主键生成模块、预占主键使用记录、预占主键回收模块。
主键预占请求模块用于分布式应用系统可以在应用启动时或预占的主键使用完后发起预占请求。一次主键预占请求可以预占多个实体的主键集,这样可以避免多次发起主键预占请求,提高分布式应用的并发性能。
接收到请求后,分布式应用系统首先在本地检查预占的主键集合是否都使用完了,如果还存在空闲的主键集合,则直接在本地即可生成主键,无需再向主键管理中心发起请求,这样大大提高的系统并发量和吞吐量。如果本地的预占的主键都已使用完,则向主键管理中心发起预占请求,申请一批空闲的主键集合。
主键管理中心的主键预占模块接收到预占请求后,检索未分配的主键集合,并根据策略预占一段范围的主键。主键预占模块采用事物一致性和原子性控制,每次只能有一个请求被处理,其他请求排队。
分布式应用系统的主键生成模块根据主键管理中心返回的预占主键集合生成主键值。支持多种格式的主键数据生成,如:业务前缀+数字序列,时间前缀+数字序列等。支持定长、不定长的主键数据生成,对于定长数据主键采用前补、或后补固定字母、数字。主键值使用MD5加密算法进行加密,确保唯一性。
预占主键使用记录模块用于在每生成一个主键时将生成的主键在本地记录下来,以便定时向主键管理中心反馈预占主键的使用情况。
主键管理中心的预占主键回收模块根据分布式应用系统反馈的预占主键使用情况,定期更新空闲的主键集合,以便这些空闲的主键可以被充分使用。预占主键回收规则例如可以是只能回收N-1次请求的预占主键。
本发明实施例提供了一种主键生成设备,其中,本发明上述实施例中的主键生成方法可以由主键生成设备来实现。图10示出了本发明实施例提供的主键生成设备的硬件结构示意图。
该主键生成设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在数据处理装置的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种主键生成方法。
在一个示例中,主键生成设备还可包括通信接口403和总线410。其中,如图10所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将主键生成设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
本发明实施例提供了一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种主键生成方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (13)
1.一种主键的生成方法,其特征在于,所述方法包括:
根据所发起的主键预占请求,判断本地是否存在空闲主键;
若本地不存在空闲主键,则向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合;
根据所述主键管理平台返回的所述预占主键集合生成主键值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所生成的主键值记录在本地,并定时向所述主键管理平台反馈预占主键的状态。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若本地存在空闲主键,则在本地生成主键值。
4.根据权利要求1所述的方法,其特征在于,所述主键预占请求包括业务类型集合、分布式应用节点信息。
5.根据权利要求1所述的方法,其特征在于,所述主键值采用MD5加密算法进行加密。
6.一种主键的生成方法,其特征在于,所述方法包括:
接收分布式应用系统发送的主键预占请求;
根据所述主键预占请求,获取空闲主键集合;
根据策略预占主键,得到预占主键集合;其中,所述策略包括对于不同业务类型所获取的主键数量;
将所述预占主键集合反馈给所述分布式应用系统。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述分布式应用系统所反馈预占主键的状态,以对所述分布式应用系统中的空闲主键进行回收。
8.根据权利要求6所述的方法,其特征在于,所述主键预占请求包括业务类型集合、分布式应用节点信息。
9.一种分布式应用系统,其特征在于,所述系统包括:
判断模块,用于根据所发起的主键预占请求,判断本地是否存在空闲主键;
发送模块,用于在所述判断模块判断出本地不存在空闲主键,向主键管理平台发起主键预占请求,以使所述主键管理平台预占一定范围的主键,得到预占主键集合;
主键生成模块,用于根据所述主键管理平台返回的所述预占主键集合生成主键值。
10.一种主键管理平台,其特征在于,包括:
接收模块,用于接收分布式应用系统发送的主键预占请求;
获取模块,用于根据所述主键预占请求,获取空闲主键集合;
主键预占模块,用于根据策略预占主键,得到预占主键集合;其中,所述策略包括对于不同业务类型所获取的主键数量;
反馈模块,用于将所述预占主键集合反馈给所述分布式应用系统。
11.一种主键生成系统,其特征在于,所述系统包括权利要求9中所述的分布式应用系统,和/或权利要求10所述的主键管理平台。
12.一种主键生成设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-5中任一项所述的方法,和/或权利要求6-8中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-5中任一项所述的方法,和/或权利要求6-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711494493.9A CN110019275A (zh) | 2017-12-31 | 2017-12-31 | 主键生成方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711494493.9A CN110019275A (zh) | 2017-12-31 | 2017-12-31 | 主键生成方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019275A true CN110019275A (zh) | 2019-07-16 |
Family
ID=67187245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711494493.9A Pending CN110019275A (zh) | 2017-12-31 | 2017-12-31 | 主键生成方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019275A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110930253A (zh) * | 2019-11-18 | 2020-03-27 | 深圳前海环融联易信息科技服务有限公司 | 智能合约内部主键生成方法、装置、计算机设备及存储介质 |
CN113779053A (zh) * | 2021-01-26 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 主键的获取方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661509A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种生成数据库表主键字段的方法及装置 |
CN101916262A (zh) * | 2010-07-29 | 2010-12-15 | 北京用友政务软件有限公司 | 一种财政要素匹配的加速方法 |
CN102402394A (zh) * | 2010-09-13 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种基于哈希算法的数据存储方法及装置 |
US20150142733A1 (en) * | 2013-11-18 | 2015-05-21 | Ori Software Development Ltd. | System and method for efficient management of big data in a database using streaming tables |
CN107133285A (zh) * | 2017-04-18 | 2017-09-05 | 北京北信源软件股份有限公司 | 一种分布式主键生成方法与装置 |
US9817858B2 (en) * | 2014-12-10 | 2017-11-14 | Sap Se | Generating hash values |
-
2017
- 2017-12-31 CN CN201711494493.9A patent/CN110019275A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661509A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种生成数据库表主键字段的方法及装置 |
CN101916262A (zh) * | 2010-07-29 | 2010-12-15 | 北京用友政务软件有限公司 | 一种财政要素匹配的加速方法 |
CN102402394A (zh) * | 2010-09-13 | 2012-04-04 | 腾讯科技(深圳)有限公司 | 一种基于哈希算法的数据存储方法及装置 |
US20150142733A1 (en) * | 2013-11-18 | 2015-05-21 | Ori Software Development Ltd. | System and method for efficient management of big data in a database using streaming tables |
US9817858B2 (en) * | 2014-12-10 | 2017-11-14 | Sap Se | Generating hash values |
CN107133285A (zh) * | 2017-04-18 | 2017-09-05 | 北京北信源软件股份有限公司 | 一种分布式主键生成方法与装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110930253A (zh) * | 2019-11-18 | 2020-03-27 | 深圳前海环融联易信息科技服务有限公司 | 智能合约内部主键生成方法、装置、计算机设备及存储介质 |
CN110930253B (zh) * | 2019-11-18 | 2023-05-23 | 深圳前海环融联易信息科技服务有限公司 | 智能合约内部主键生成方法、装置、计算机设备及存储介质 |
CN113779053A (zh) * | 2021-01-26 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 主键的获取方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271265B (zh) | 基于消息队列的请求处理方法、装置、设备及存储介质 | |
US10735345B2 (en) | Orchestrating computing resources between different computing environments | |
CN108549580B (zh) | 自动部署Kubernetes从节点的方法及终端设备 | |
US11010217B2 (en) | Application programming interfaces in a multi-server environment | |
CN109146490B (zh) | 区块生成方法、装置和系统 | |
US11019128B2 (en) | Identity service management in limited connectivity environments | |
JP2014089744A (ja) | コマンドライン環境を使用する遠隔システム管理 | |
US10552293B2 (en) | Logging as a service | |
CN109508326B (zh) | 用于处理数据的方法、装置和系统 | |
US9948631B2 (en) | Implementing single sign-on in a transaction processing system | |
CN109815025A (zh) | 业务模型调用方法、装置及存储介质 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
US8352617B2 (en) | Method and system for data processing | |
CN111831461A (zh) | 一种处理业务流程的方法和装置 | |
CN110019275A (zh) | 主键生成方法、装置、设备及介质 | |
WO2024093859A1 (zh) | 服务功能编排的方法、系统、电子设备及存储介质 | |
CN112988738B (zh) | 用于区块链的数据分片方法和装置 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
US20190324877A1 (en) | Method to Efficiently and Reliably Process Ordered User Account Events in a Cluster | |
US20190068462A1 (en) | Identifying a monitoring template for a managed service based on a service-level agreement | |
CN111866171A (zh) | 报文处理方法、装置、电子设备和介质 | |
WO2022057698A1 (en) | Efficient bulk loading multiple rows or partitions for single target table | |
US20230333885A1 (en) | Method and system for provisioning applications in a distributed multi-tiered computing environment | |
US10250516B2 (en) | Adjustment of an information unit pacing credit to increase data transmission rate | |
CN113918924A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |
|
RJ01 | Rejection of invention patent application after publication |