CN107360224A - 分布式系统中序列号生成方法、系统、设备及存储介质 - Google Patents
分布式系统中序列号生成方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN107360224A CN107360224A CN201710550589.6A CN201710550589A CN107360224A CN 107360224 A CN107360224 A CN 107360224A CN 201710550589 A CN201710550589 A CN 201710550589A CN 107360224 A CN107360224 A CN 107360224A
- Authority
- CN
- China
- Prior art keywords
- field
- sequence number
- server
- user
- distributed system
- 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.)
- Granted
Links
Classifications
-
- 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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种分布式系统中序列号生成方法、系统、设备及存储介质,该方法包括在第二服务器中建立一字段管理表;接收到一第一服务器发出的字段生成请求时,新增一字段号,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在字段管理表中;根据该第一服务器接收到的字段号,设定该字段号所对应的序列号分配范围,并在该序列号分配范围内依次分配序列号数值。本发明通过先在第二服务器中取一个唯一字段,然后将该字段放大数倍后将其中的数值依次分配给用户,作为用户的序列号数值,从而保证了用户的序列号的唯一性;使用第一服务器标识码作为标识,避免在多个第一服务器取回的字段混淆;通过字段的排序,实现了用户序列号的排序。
Description
技术领域
本发明涉及分布式系统技术领域,尤其涉及一种在分布式系统中快速简单地生成唯一序列号的分布式系统中序列号生成方法、系统、设备及存储介质。
背景技术
在分布式系统中,如何快速高效地生成系统唯一UID(User Identification,用户身份证明),是在设计一个分布式系统时常常会遇见的问题。现有技术中生成UID的方法有很多,以适应不同的场景、需求以及性能要求,但都存在各自的缺陷。
现有的UID生成的方法主要有如下几种:
(1)利用第二服务器单库单表递增
采用第二服务器单库单表递增的方式,虽然可以实现全第二服务器唯一UID生成,并且实现方式简单,UID具有一定的排序,可控性好。但是单库单表对于第二服务器的压力很大。并且,对于不同的第二服务器,序列语法和实现各不相同,第二服务器迁移、多表合并以及第二服务器分表分库时非常麻烦。
(2)UUID(Universally Unique Identifier,通用唯一识别码)
采用UUID的方式,虽然减轻了第二服务器的压力,生成UID性能良好,代码简单,基本不会有性能问题。并且UUID全球唯一,在数据迁移、数据合并和第二服务器变更的情况下,都可以从容应对。但是UUID字符无序,无法保证按趋势递增。
(3)Twitter的UID生成方案
Twitter的UID生成方案主要采用49位时间戳加机器号再加随机数的方案,但是序列号过长,并不友好,不利于后期排障。需要排序的时候,每个UID都需要处理一下再进行排序,不利于快速排序。
同样地,在现有的分布式系统中,如订单号、事件号等其他序列号的生成也存在上述类似的问题。因此,急需一种生成简单且性能稳定的分布式系统中唯一序列号生成方案。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种分布式系统中序列号生成方法、系统、设备及存储介质,在分布式系统中快速简单地生成唯一序列号,减轻系统负担,代码简单,排序方便。
本发明实施例提供一种分布式系统中序列号生成方法,所述分布式系统包括多个第一服务器和一第二服务器,其特征在于,所述方法包括如下步骤:
在所述第二服务器中建立一字段管理表,所述字段管理表中存储有多条字段记录,各个所述字段记录包括一字段号和一服务器标识号;
接收到一第一服务器发出的字段生成请求时,新增一字段号,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述字段管理表中,并将该字段号发送至该第一服务器;
该第一服务器根据接收到的字段号,设定该字段号所对应的序列号分配范围,并在该序列号分配范围内依次为各个用户分配序列号数值。
可选地,所述新增一字段号,包括如下步骤:
查询前一次新增的字段号,在该前一次新增的字段号的基础上增加数值s,作为当前新增的字段号,其中s为预设字段号间隔。
可选地,接收到一第一服务器发出的字段生成请求时,新增一字段号,判断所述字段管理表中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括新增的字段号和该服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括新增的字段号和该第一服务器的服务器标识号。
可选地,所述服务器标识号包括第一服务器的IP地址或第一服务器的设备编号。
可选地,所述第二服务器为MySql数据库服务器。
可选地,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述字段管理表中,包括如下步骤:
采用MySql的replace into语句,判断所述第二服务器中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括新增的字段号和该第一服务器的服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括新增的字段号和该第一服务器的服务器标识号。
可选地,根据该第一服务器接收到的字段号a,设定该字段号a所对应的序列号分配范围为(a*m,(a+s)*m-t),其中m为预设放大倍数,s为预设字段号间隔,t为预设序列号数值间隔。
可选地,所述方法还包括如下步骤:
根据接收到的字段号a为用户分配序列号数值时,判断当前待分配序列号数值x是否等于字段a所对应的序列号分配范围内的最大值(a+s)*m-t;
如果是,则将数值x作为当前用户的序列号数值,且发送字段生成请求,获取新的字段号b并设定新的序列号分配范围为(b*m,(b+s)*m-t),并在该字段b对应的序列号分配范围内依次为后续用户分配序列号数值;
如果否,则将数值x作为当前用户的序列号数值,并在(x+t,(a+s)*m-t)范围内依次为后续用户分配序列号数值。
可选地,所述方法还包括如下步骤:
根据接收到的字段号a为用户分配序列号数值时,判断前一分配序列号数值y是否为所对应序列号分配范围内的最大值(a+s)*m-t;
如果是,则发送字段生成请求,获取新的字段号b并设定新的序列号分配范围为(b*m,(b+s)*m-t),选取b*m作为当前用户的序列号数值,并在该字段b对应的序列号分配范围内依次为后续用户分配序列号数值;
如果否,则将数值y+t作为当前用户的序列号数值,并在(y+t,(a+s)*m-t)范围内依次为后续用户分配序列号数值。
可选地,所述预设放大倍数m满足如下公式:
m=10n
其中,n为预设放大数量级,且n为大于等于1的整数。
可选地,采用原子变量为用户分配序列号数值,在该序列号分配范围内依次为各个用户分配序列号数值,包括如下步骤:
设置字段a所对应的原子变量为a*m;
在内存中记录字段a所对应的序列号分配范围内的最大值(a+s)*m-t;
判断前一分配序列号数值y是否为所对应序列号分配范围内的最大值(a+s)*m-t;
如果是,则发送字段生成请求,获取新的字段号b并设定新的序列号分配范围为(b*m,(b+s)*m-t),选取b*m作为当前用户的序列号数值,并在该字段b对应的序列号分配范围内采用原子级增量操作依次选择下一数值作为后续用户的序列号数值;
如果否,则采用原子级增量操作在字段a对应的序列号分配范围内选择数值y的下一数值作为当前用户的序列号数值,并在(y+t,(a+s)*m-t)范围内依次选择下一数值作为后续用户的序列号数值。
可选地,还包括如下步骤:
将各个用户的序列号数值和用户标识码组合成用户的序列号。
可选地,所述序列号标识码包括用户设备识别码、用户IP地址、用户注册来源编码、用户地区编码或用户注册时间编码中的至少一种。
本发明实施例还提供一种分布式系统中序列号生成系统,所述分布式系统包括多个第一服务器和一第二服务器,所述序列号生成系统包括:
字段管理表创建模块,用于在所述第二服务器中建立一字段管理表,所述字段管理表中存储有多条字段记录,各个所述字段记录包括一字段号和一服务器标识号;
字段管理表维护模块,用于接收到一第一服务器发出的字段生成请求时,新增一字段号,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述第二服务器中,并将该字段号发送至该第一服务器;
序列号数值分配模块,用于根据该第一服务器接收到的字段号,设定该字段号所对应的序列号分配范围,并在该序列号分配范围内依次为各个用户分配序列号数值。
可选地,接收到一第一服务器发出的字段生成请求时,所述字段管理表维护模块新增一字段号,判断所述字段管理表中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括新增的字段号和该服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括新增的字段号和该第一服务器的服务器标识号。
可选地,所述序列号数值分配模块根据该第一服务器接收到的字段号a,设定该字段号a所对应的序列号分配范围为(a*m,(a+s)*m-t),其中m为预设放大倍数,s为预设字段号间隔,t为预设序列号数值间隔。
本发明实施例还提供一种分布式系统中序列号生成设备,所述分布式系统包括多个第一服务器和一第二服务器,所述序列号生成设备包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的分布式系统中序列号生成方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述分布式系统包括一第二服务器和多个第一服务器,所述程序被执行时实现所述的分布式系统中序列号生成方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本发明所提供的分布式系统中序列号生成方法、系统及存储介质具有下列优点:
本发明通过先在第二服务器中取一个唯一字段,然后将该字段放大数倍后将其中的数值依次分配给用户,作为用户的序列号数值,从而保证了用户的序列号的唯一性;使用第一服务器标识码作为标识,避免在多个第一服务器同时更新字段时,取回的字段混淆;通过字段的排序,实现了用户的序列号的排序,并且将序列号数值分配的工作分担到各个第一服务器中,减轻系统负担;从而在分布式系统中快速简单地生成唯一序列号,代码简单,排序方便。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的分布式系统的结构示意图;
图2是本发明一实施例的分布式系统中序列号生成方法的流程图;
图3是本发明一实施例的保存字段记录的流程图;
图4是本发明一实施例的判断UID分配范围分配完毕的第一种方式的流程图;
图5是本发明一实施例的判断UID分配范围分配完毕的第二种方式的流程图;
图6是本发明一实施例的分布式系统中序列号生成的压力测试图;
图7是本发明一实施例的分布式系统中序列号生成系统的结构示意图;
图8是本发明一实施例的分布式系统中序列号生成设备的结构示意图;
图9是本发明一实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为了实现上述目的,本发明实施例提供一种分布式系统中序列号生成的方法。如图1所示,所述分布式系统包括多个第一服务器100和一第二服务器200,各个所述第一服务器100与第二服务器200可以进行通信。所述第一服务器100可以是应用服务器、接口服务器、ID分发服务器、订单生成服务器、事件跟踪服务器等,所述第二服务器可以是数据库服务器。
如图2所示,所述分布式系统中序列号生成方法包括如下步骤:
S100:在所述第二服务器中建立一字段管理表,所述字段管理表中存储有多条字段记录,各个所述字段记录包括一字段号和一服务器标识号;
S200:接收到一第一服务器发出的字段生成请求时,新增一字段号a;在新增一字段号a时,可以首先查询前一次新增的字段号,在该前一次新增的字段号的基础上增加数值s,作为当前新增的字段号a。或者在前一次新增字段号后,将新增字段号增加数值s,作为下一次可取的字段号。下一次新增字段号时,直接将可取的字段号作为新增字段号a即可。此处增加数值s为预设字段号间隔,可以为1,在实际应用中,也可以根据设置调整各个字段号之间的间隔值。此处新增字段号a可以由第二服务器执行,但不限于此。
S300:将包括该字段号a和该第一服务器的服务器标识号的字段记录保存在所述字段管理表中,并将该字段号a发送至该第一服务器;
S400:该第一服务器根据接收到的字段号a,设定该字段号a所对应的UID分配范围为(a*m,(a+s)*m-t),其中m为预设放大倍数,s为预设字段号间隔,t为预设UID数值间隔;即s是设定的在第二服务器每次新增的字段号之间的间隔值,t为一个服务器在一字段号a的范围内分配序列号数值时,各个序列号数值之间的间隔值。
所述序列号可以是用户请求的UID,也可以是系统生成的订单,或制定的事件等等其他类型。在该实施例中,以该序列号为UID举例说明。但应当理解的是,本发明的方法生成的序列号也可以是其他类型,而不限于此。
例如取到的字段号是3,预设放大倍数为1000,预设字段号间隔为1,预设UID数值间隔为1,则UID分配范围为(3000,3999)。分配UID数值时,第一个用户取到的UID数值就是3000,第二个用户取到的UID数值是3001,第三个用户取到的UID数值是3002,以此类推,取到3999为止。
又例如取到的字段号是3,预设放大倍数是100,预设字段号间隔为2,预设UID数值间隔为2,则UID分配范围为(300,498)。分配UID数值时,第一个用户取到的UID数值就是300,第二个用户取到的UID数值是302,第三个用户取到的数值是304,以此类推,取到498为止。
S500:根据预设序列号数值间隔,在该序列号分配范围内依次为各个用户分配序列号数值。例如从UID分配范围内最小值a*m开始为用户分配UID数值,每两个UID数值之间的间隔为t,分配到最大值(a+s)*m-t为止。
此处字段号a和UID分配范围之间的对应关系仅为举例。在实际应用中,还可以根据实际需要修改字段号和UID分配范围之间的对应关系。目的是为了通过字段号来将不同第一服务器在不同时段分配的UID数值进行区分,并且通过字段管理表的内部排序实现UID数值的排序。
该技术方案通过先在第二服务器中取一个唯一字段,然后将该字段放大数倍后将其中的数值依次分配给用户,作为用户的序列号数值,从而保证了用户的序列号的唯一性;使用第一服务器标识码作为标识,避免在多个第一服务器同时更新字段时,取回的字段混淆;每次接收到一个第一服务器发出的字段生成请求时,都新增一个字段号,通过字段的排序,实现了用户的序列号的排序,并且将序列号数值分配的工作分担到各个第一服务器中,减轻系统负担。
可选地,所述服务器标识号包括第一服务器的IP地址或第一服务器的设备编号。例如,当服务器标识号为第一服务器的IP地址时,第二服务器中的字段管理表可以如下表1所示:
表1字段管理表例表1
其中,Id号即为字段号,以各个第一服务器的IP地址作为服务器识别号,以区分各个不同的服务器。这样在多个服务器同时更新数据时,可以防止取回的Id混淆的问题。其中Id是自增的,每增加一条记录,会新增一个Id号,这样也就保证了每次取到的字段号是唯一的且是顺序排序的。例如,有另外三个第一服务器分别发出了字段生成请求,则第二服务器中生成如下表格:
表2字段管理表例表2
Id(字段号) | Stub(存根) |
1 | 10.32.25.8 |
2 | 10.3.2.132 |
3 | 10.32.25.7 |
4 | 10.2.82.65 |
如图3所示,接收到一第一服务器发出的字段生成请求时,新增一字段号a,还可以包括如下步骤:
判断所述第二服务器中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用该字段号a替换该字段记录中的原字段号;
如果不存在,则创建一条新的字段记录,该新的字段记录包括该字段号a和该第一服务器的服务器标识号。
例如,对于上述表2,当此时之前取得字段号1的第一服务器10.32.25.8又重新提交字段生成请求时,首先在表2的基础上新增一个字段号5,然后判断是否存在10.32.25.8对应的字段记录,如果存在,则替换原字段记录,如果不存在,则重新生成一个字段记录。此处替换原记录后的表格如下所示:
表3字段管理表例表3
可选地,所述第二服务器为MySql数据库服务器。因此可以使用MySql的语句replace into来更新记录从而获得唯一字段号,即采用MySql的replace into语句,判断所述第二服务器中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括字段号a和该第一服务器的服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括该字段号a和该第一服务器的服务器标识号。
例如:
REPLACE INTO uidgenerator(stub)VALUES(“10.32.25.8”);
再用select语句将该字段号取出,即例如:
SELECT id FROM uidgenerator WHERE stub=“10.32.25.8”
这样可以防止在取字段号时,多个服务器之间发生冲突和混淆。
此处采用第一服务器的IP地址作为服务器识别号仅为举例,在实际应用中,还可以采用其他服务器的标识信息,例如采用第一服务器的设备编号,等等,能够实现区分各个第一服务器的目的即可,均属于本发明的保护范围之内。
取得了字段号的第一服务器在分配序列号数值时,首先在当前字段号对应的序列号分配范围内分配,如果序列号分配范围分配完成,则需要到第二服务器中去重新取一个新的字段号,重新定义一个新的序列号分配范围,再继续分配。在判断当前字段所对应的序列号分配范围是否分配完成时,可以采用两种方式,一种方式是在分配时判断当前序列号数值是否为最大值。下面以用户的UID为例分别说明这两种方式。
如图4所示,该第一种方式包括如下步骤:
根据接收到的字段号a为用户分配UID数值时,判断当前待分配UID数值x是否等于字段a所对应的UID分配范围内的最大值(a+s)*m-t;
如果是,则将数值x作为当前用户的UID数值,且发送字段生成请求,获取新的字段号b并设定新的UID分配范围为(b*m,(b+s)*m-t),并在该字段b对应的UID分配范围内依次为后续用户分配UID数值;
如果否,则将数值x作为当前用户的UID数值,并在(x+t,(a+s)*m-t)范围内依次为后续用户分配UID数值。
例如,字段号a为3,预设放大倍数m为1000,预设字段号间隔s为1,预设UID数值间隔t为1,则UID分配范围为(3000,3999),如果当前待分配UID数值x为3999,则将3999作为当前用户的UID数值,且发送字段生成请求,例如获取的新字段号b为8,即中间的字段号4、5、6、7在此之前已经被其他第一服务器取走了,新的UID分配范围为(8000,8999),如果该第一服务器接收到下一个用户的UID生成请求,则将8000作为下一用户的UID数值,以此类推。
然而,如果当前待分配UID数值x为3456,则将该3456作为当前用户的UID数值,并且在(3457,3999)范围内依次为后续用户分配UID数值。
第二种方式是在分配一个UID数值时,判断前一个分配的UID数值是否为最大值,如果前一个分配的UID数值已经是最大值,那么就需要先重新获取字段号,再分配当前用户的UID数值。
如图5所示,该第二种方式包括如下步骤:
根据接收到的字段号a为用户分配UID数值时,判断前一分配UID数值y是否为所对应UID分配范围内的最大值(a+s)*m-t;
如果是,则发送字段生成请求,获取新的字段号b并设定新的UID分配范围为(b*m,(b+s)*m-t),选取b*m作为当前用户的UID数值,并在该字段b对应的UID分配范围内依次为后续用户分配UID数值;
如果否,则将数值y+t作为当前用户的UID数值,并在(y+t,(a+s)*m-t)范围内依次为后续用户分配UID数值。
例如,字段号a为3,预设放大倍数m为1000,预设字段号间隔s为1,预设UID数值间隔t为1,则UID分配范围为(3000,3999),如果前一个分配UID数值y为3999,则发送字段生成请求,例如获取的新字段号b为8,即中间的字段号4、5、6、7在此之前已经被其他第一服务器取走了,新的UID分配范围为(8000,8999),则将8000作为当前用户的UID数值,并将8001作为下一个用户的UID数值,以此类推。
然而,如果前一个分配UID数值y为3578,则当前用户的UID数值则为3579,并在(3580,3999)范围内依次为后续用户分配UID数值。
可选地,所述预设放大倍数m满足如下公式:
m=10n
其中,n为预设放大数量级,且n为大于等于1的整数。即优选在设定UID分配范围时,将字段号放大10倍、100倍、1000倍或其他10的倍数。这样可以很好地对字段号进行区分和管理。然而,本发明不限于此,其他倍数也是可以的,例如将字段号放大39倍、54倍等等,可以根据实际需要进行调整。放大的倍数决定了一个字段号可以对应多少个UID数值的数量。在一个分布式系统注册量特别大时,可以将该倍数设置得很大,注册量不是很大时,则可以将该倍数设置得相对较小,减少UID数值的位数。
可选地,可以采用原子变量AtomicLong为用户分配UID数值,在该UID分配范围内依次为各个用户分配UID数值,包括如下步骤:
设置字段a所对应的原子变量为a*m;例如:atomic.set(a*1000);
在内存中记录字段a所对应的UID分配范围内的最大值(a+s)*m-t;
例如:currentMaxId=(a+1)*1000-1;
然后每次有用户来取号的时候,判断前一分配UID数值y是否为所对应UID分配范围内的最大值(a+s)*m-t;
如果是,则发送字段生成请求,获取新的字段号b并设定新的UID分配范围为(b*m,(b+s)*m-t),选取b*m作为当前用户的UID数值,并在该字段b对应的UID分配范围内采用原子级增量操作依次选择下一数值作为后续用户的UID数值;
如果否,则采用原子级增量操作在字段a对应的UID分配范围内选择数值y的下一数值作为当前用户的UID数值,并在该字段a对应的UID分配范围内选择下一数值作为后续用户的UID数值。例如:
Long uid=atomic.incrementAndGet();
在取到新的字段b时,操作也是一样的,首先保存最大值,然后采取原子级增量操作来依次分配UID数值。
可选地,在为用户分配UID数值后,还包括如下步骤:
将各个用户的UID数值和用户标识码组合成用户的UID。
可选地,所述UID标识码包括用户设备识别码、用户IP地址、用户注册来源编码、用户地区编码或用户注册时间编码中的至少一种。
例如,在UID数值前面增加一个简写表明用户注册来源,例如M表示手机号,和UID数值1022组成用户的UID:M1022,E表示邮箱,和UID数值2045组成用户的UID:E2045;C表示卡号,和UID数值8394组成用户的UID:C8394等。UID标识码和UID数值的组合方式也不限于此,也可以UID数值在前,UID标识码在后,也可以添加两个以上的UID标识码等等,均属于本发明的保护范围之内。
通过该实施例的技术方案,各个第一服务器在分配用户的UID数值时,只是在自己当前的字段号内分配,不会与其他第一服务器发生冲突,保证了单线程操作单行记录。并且通过字段号统一管理各个第一服务器分配的UID排序问题。采用十分简洁的方法,解决了分布式系统用户UID生成的问题。
如图6所示,为采用本发明的分布式系统中UID生成方法的压力测试图。对generateUidSequenceNumber接口进行了压力测试。线程数为10,压测时间为30分钟,平均响应时间为8ms,TPS(每秒系统吞吐量)为1115.7。该图中示出了从6月6日到6月12日随时间变化的压力测试值。将各个时段中系统吞吐量(Throughput)平均到每秒,远远低于1115.7。因此采用本发明的UID生成方法,相比于现有技术中的UID分配方法,减少了系统吞吐量,大大减轻了系统中各个服务器的负担,提高了系统稳定性。
可以理解的是,该实施例中以用户的UID为例说明的技术方案,对于其他类型的序列号也同样适用,均属于本发明的保护范围之内。
如图7所示,本发明还提供一种分布式系统中序列号生成系统,所述分布式系统包括多个第一服务器和一第二服务器,所述序列号生成系统包括:
字段管理表创建模块300,用于在所述第二服务器中建立一字段管理表,所述字段管理表中存储有多条字段记录,各个所述字段记录包括一字段号和一服务器标识号;
字段管理表维护模块400,用于接收到一第一服务器发出的字段生成请求时,新增一字段号,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述字段记录表中,并将该字段号发送至该第一服务器;
序列号数值分配模块500,用于根据该第一服务器接收到的字段号,设定该字段号所对应的序列号分配范围,并在该序列号分配范围内依次为各个用户分配序列号数值。
本发明实施例还提供一种分布式系统中序列号生成设备,所述分布式系统包括多个第一服务器和一第二服务器,所述序列号生成设备包括:处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的分布式系统中序列号生成方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本发明的这种实施方式的电子设备600。图8显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图2中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述分布式系统包括一第二服务器和多个第一服务器,所述程序被执行时实现所述的分布式系统中序列号生成方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本发明所提供的分布式系统中序列号生成方法、系统及存储介质具有下列优点:
本发明通过先在第二服务器中取一个唯一字段,然后将该字段放大数倍后将其中的数值依次分配给用户,作为用户的序列号数值,从而保证了用户的序列号的唯一性;使用第一服务器标识码作为标识,避免在多个第一服务器同时更新字段时,取回的字段混淆;通过字段的排序,实现了用户的序列号的排序,并且将序列号数值分配的工作分担到各个第一服务器中,减轻系统负担;从而在分布式系统中快速简单地生成唯一序列号,代码简单,排序方便。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (19)
1.一种分布式系统中序列号生成方法,所述分布式系统包括多个第一服务器和一第二服务器,其特征在于,所述方法包括如下步骤:
在所述第二服务器中建立一字段管理表,所述字段管理表中存储有多条字段记录,各个所述字段记录包括一字段号和一服务器标识号;
接收到一第一服务器发出的字段生成请求时,新增一字段号,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述字段管理表中,并将该字段号发送至该第一服务器;
该第一服务器根据接收到的字段号,设定该字段号所对应的序列号分配范围,并在该序列号分配范围内依次为各个用户分配序列号数值。
2.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,所述新增一字段号,包括如下步骤:
查询前一次新增的字段号,在该前一次新增的字段号的基础上增加数值s,作为当前新增的字段号,其中s为预设字段号间隔。
3.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,接收到一第一服务器发出的字段生成请求时,新增一字段号,判断所述字段管理表中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括新增的字段号和该服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括新增的字段号和该第一服务器的服务器标识号。
4.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,所述服务器标识号包括第一服务器的IP地址或第一服务器的设备编号。
5.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,所述第二服务器为MySql数据库服务器。
6.根据权利要求5所述的分布式系统中序列号生成方法,其特征在于,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述字段管理表中,包括如下步骤:
采用MySql的replace into语句,判断所述第二服务器中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括新增的字段号和该第一服务器的服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括新增的字段号和该第一服务器的服务器标识号。
7.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,根据该第一服务器接收到的字段号a,设定该字段号a所对应的序列号分配范围为(a*m,(a+s)*m-t),其中m为预设放大倍数,s为预设字段号间隔,t为预设序列号数值间隔。
8.根据权利要求7所述的分布式系统中序列号生成方法,其特征在于,所述方法还包括如下步骤:
根据接收到的字段号a为用户分配序列号数值时,判断当前待分配序列号数值x是否等于字段a所对应的序列号分配范围内的最大值(a+s)*m-t;
如果是,则将数值x作为当前用户的序列号数值,且发送字段生成请求,获取新的字段号b并设定新的序列号分配范围为(b*m,(b+s)*m-t),并在该字段b对应的序列号分配范围内依次为后续用户分配序列号数值;
如果否,则将数值x作为当前用户的序列号数值,并在(x+t,(a+s)*m-t)范围内依次为后续用户分配序列号数值。
9.根据权利要求7所述的分布式系统中序列号生成方法,其特征在于,所述方法还包括如下步骤:
根据接收到的字段号a为用户分配序列号数值时,判断前一分配序列号数值y是否为所对应序列号分配范围内的最大值(a+s)*m-t;
如果是,则发送字段生成请求,获取新的字段号b并设定新的序列号分配范围为(b*m,(b+s)*m-t),选取b*m作为当前用户的序列号数值,并在该字段b对应的序列号分配范围内依次为后续用户分配序列号数值;
如果否,则将数值y+t作为当前用户的序列号数值,并在(y+t,(a+s)*m-t)范围内依次为后续用户分配序列号数值。
10.根据权利要求7所述的分布式系统中序列号生成方法,其特征在于,所述预设放大倍数m满足如下公式:
m=10n
其中,n为预设放大数量级,且n为大于等于1的整数。
11.根据权利要求7所述的分布式系统中序列号生成方法,其特征在于,采用原子变量为用户分配序列号数值,在该序列号分配范围内依次为各个用户分配序列号数值,包括如下步骤:
设置字段a所对应的原子变量为a*m;
在内存中记录字段a所对应的序列号分配范围内的最大值(a+s)*m-t;
判断前一分配序列号数值y是否为所对应序列号分配范围内的最大值(a+s)*m-t;
如果是,则发送字段生成请求,获取新的字段号b并设定新的序列号分配范围为(b*m,(b+s)*m-t),选取b*m作为当前用户的序列号数值,并在该字段b对应的序列号分配范围内采用原子级增量操作依次选择下一数值作为后续用户的序列号数值;
如果否,则采用原子级增量操作在字段a对应的序列号分配范围内选择数值y的下一数值作为当前用户的序列号数值,并在(y+t,(a+s)*m-t)范围内依次选择下一数值作为后续用户的序列号数值。
12.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,还包括如下步骤:
将各个用户的序列号数值和用户标识码组合成用户的序列号。
13.根据权利要求12所述的分布式系统中序列号生成方法,其特征在于,所述序列号标识码包括用户设备识别码、用户IP地址、用户注册来源编码、用户地区编码或用户注册时间编码中的至少一种。
14.根据权利要求1所述的分布式系统中序列号生成方法,其特征在于,所述序列号包括UID、订单号或事件号。
15.一种分布式系统中序列号生成系统,所述分布式系统包括多个第一服务器和一第二服务器,其特征在于,所述序列号生成系统包括:
字段管理表创建模块,用于在所述第二服务器中建立一字段管理表,所述字段管理表中存储有多条字段记录,各个所述字段记录包括一字段号和一服务器标识号;
字段管理表维护模块,用于接收到一第一服务器发出的字段生成请求时,新增一字段号,将包括该字段号和该第一服务器的服务器标识号的字段记录保存在所述第二服务器中,并将该字段号发送至该第一服务器;
序列号数值分配模块,用于根据该第一服务器接收到的字段号,设定该字段号所对应的序列号分配范围,并在该序列号分配范围内依次为各个用户分配序列号数值。
16.根据权利要求15所对应的分布式系统中序列号生成系统,其特征在于,接收到一第一服务器发出的字段生成请求时,所述字段管理表维护模块新增一字段号,判断所述字段管理表中是否存在该第一服务器的服务器标识号所对应的字段记录;
如果存在,则使用包括新增的字段号和该服务器标识号的字段记录替换原字段记录;
如果不存在,则创建一条新的字段记录,该新的字段记录包括新增的字段号和该第一服务器的服务器标识号。
17.根据权利要求15所对应的分布式系统中序列号生成系统,其特征在于,所述序列号数值分配模块根据该第一服务器接收到的字段号a,设定该字段号a所对应的序列号分配范围为(a*m,(a+s)*m-t),其中m为预设放大倍数,s为预设字段号间隔,t为预设序列号数值间隔。
18.一种分布式系统中序列号生成设备,所述分布式系统包括多个第一服务器和一第二服务器,其特征在于,所述序列号生成设备包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至14中任一项所述的分布式系统中序列号生成方法的步骤。
19.一种计算机可读存储介质,用于存储程序,其特征在于,所述分布式系统包括一第二服务器和多个第一服务器,所述程序被执行时实现权利要求1至14中任一项所述的分布式系统中序列号生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710550589.6A CN107360224B (zh) | 2017-07-07 | 2017-07-07 | 分布式系统中序列号生成方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710550589.6A CN107360224B (zh) | 2017-07-07 | 2017-07-07 | 分布式系统中序列号生成方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107360224A true CN107360224A (zh) | 2017-11-17 |
CN107360224B CN107360224B (zh) | 2020-03-31 |
Family
ID=60291691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710550589.6A Active CN107360224B (zh) | 2017-07-07 | 2017-07-07 | 分布式系统中序列号生成方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107360224B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647308A (zh) * | 2018-05-09 | 2018-10-12 | 曙光信息产业(北京)有限公司 | 分布式系统的序列号生成方法及装置 |
CN108846085A (zh) * | 2018-06-12 | 2018-11-20 | 北京奇艺世纪科技有限公司 | 一种id生成方法、装置、电子设备及系统 |
CN109241056A (zh) * | 2018-08-23 | 2019-01-18 | 重庆富民银行股份有限公司 | 一种用于分布式系统的数字id生成系统 |
CN109271388A (zh) * | 2018-09-29 | 2019-01-25 | 北京奇虎科技有限公司 | 一种身份标识码的生成方法及终端设备 |
CN109597834A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 基于redis的海量数据存储方法、装置、介质和设备 |
CN110046192A (zh) * | 2019-04-22 | 2019-07-23 | 广州荔支网络技术有限公司 | 请求信息的序号生成系统和方法 |
CN110096685A (zh) * | 2019-04-28 | 2019-08-06 | 新华三信息安全技术有限公司 | 一种设备标识生成方法及装置 |
CN110491445A (zh) * | 2018-05-11 | 2019-11-22 | 广州华大基因医学检验所有限公司 | Uid测序、uid序列设计、uid去重质量值校正的方法及应用 |
CN110888910A (zh) * | 2018-09-11 | 2020-03-17 | 北京京东尚科信息技术有限公司 | 唯一识别码的号段切换方法和装置 |
CN110968589A (zh) * | 2019-12-18 | 2020-04-07 | 浙江明度智控科技有限公司 | 一种分布式系统中自增id的管理方法和装置 |
CN110968925A (zh) * | 2018-09-28 | 2020-04-07 | 上海肇观电子科技有限公司 | 机器人及时间对齐方法、装置、电子设备、存储介质 |
CN111126537A (zh) * | 2019-12-17 | 2020-05-08 | 北京达佳互联信息技术有限公司 | 标识码id的生成方法及相关产品 |
CN111722918A (zh) * | 2019-03-21 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 业务标识码生成方法、装置、存储介质及电子设备 |
CN112364367A (zh) * | 2020-11-27 | 2021-02-12 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的对象处理方法、装置及设备 |
CN113065034A (zh) * | 2021-03-29 | 2021-07-02 | 上海安畅网络科技股份有限公司 | 一种分布式系统编号生成方法和系统 |
CN113905014A (zh) * | 2021-08-27 | 2022-01-07 | 拉卡拉支付股份有限公司 | 用于为终端设备分配id号的方法、服务器和存储介质 |
CN115292314A (zh) * | 2022-07-28 | 2022-11-04 | 上海数禾信息科技有限公司 | 序列号生成方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463850B1 (en) * | 2011-10-26 | 2013-06-11 | F5 Networks, Inc. | System and method of algorithmically generating a server side transaction identifier |
CN106790510A (zh) * | 2016-12-16 | 2017-05-31 | 北京小米移动软件有限公司 | 序列号的生成方法、装置以及系统 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
-
2017
- 2017-07-07 CN CN201710550589.6A patent/CN107360224B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463850B1 (en) * | 2011-10-26 | 2013-06-11 | F5 Networks, Inc. | System and method of algorithmically generating a server side transaction identifier |
CN106790510A (zh) * | 2016-12-16 | 2017-05-31 | 北京小米移动软件有限公司 | 序列号的生成方法、装置以及系统 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
张屹: ""开放通信系统安全码的生成和应用"", 《铁道通信信号》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647308A (zh) * | 2018-05-09 | 2018-10-12 | 曙光信息产业(北京)有限公司 | 分布式系统的序列号生成方法及装置 |
CN110491445B (zh) * | 2018-05-11 | 2023-05-30 | 广州华大基因医学检验所有限公司 | Uid测序、uid序列设计、uid去重质量值校正的方法及应用 |
CN110491445A (zh) * | 2018-05-11 | 2019-11-22 | 广州华大基因医学检验所有限公司 | Uid测序、uid序列设计、uid去重质量值校正的方法及应用 |
CN108846085A (zh) * | 2018-06-12 | 2018-11-20 | 北京奇艺世纪科技有限公司 | 一种id生成方法、装置、电子设备及系统 |
CN109241056A (zh) * | 2018-08-23 | 2019-01-18 | 重庆富民银行股份有限公司 | 一种用于分布式系统的数字id生成系统 |
CN110888910A (zh) * | 2018-09-11 | 2020-03-17 | 北京京东尚科信息技术有限公司 | 唯一识别码的号段切换方法和装置 |
CN110968925B (zh) * | 2018-09-28 | 2024-02-02 | 上海肇观电子科技有限公司 | 机器人及时间对齐方法、装置、电子设备、存储介质 |
CN110968925A (zh) * | 2018-09-28 | 2020-04-07 | 上海肇观电子科技有限公司 | 机器人及时间对齐方法、装置、电子设备、存储介质 |
CN109271388A (zh) * | 2018-09-29 | 2019-01-25 | 北京奇虎科技有限公司 | 一种身份标识码的生成方法及终端设备 |
CN109597834B (zh) * | 2018-10-22 | 2024-05-07 | 平安科技(深圳)有限公司 | 基于redis的海量数据存储方法、装置、介质和设备 |
CN109597834A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 基于redis的海量数据存储方法、装置、介质和设备 |
CN111722918A (zh) * | 2019-03-21 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 业务标识码生成方法、装置、存储介质及电子设备 |
CN110046192A (zh) * | 2019-04-22 | 2019-07-23 | 广州荔支网络技术有限公司 | 请求信息的序号生成系统和方法 |
CN110046192B (zh) * | 2019-04-22 | 2021-08-20 | 广州荔支网络技术有限公司 | 请求信息的序号生成系统和方法 |
CN110096685A (zh) * | 2019-04-28 | 2019-08-06 | 新华三信息安全技术有限公司 | 一种设备标识生成方法及装置 |
CN110096685B (zh) * | 2019-04-28 | 2023-06-20 | 新华三信息安全技术有限公司 | 一种设备标识生成方法及装置 |
CN111126537A (zh) * | 2019-12-17 | 2020-05-08 | 北京达佳互联信息技术有限公司 | 标识码id的生成方法及相关产品 |
CN111126537B (zh) * | 2019-12-17 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 标识码id的生成方法及相关产品 |
CN110968589A (zh) * | 2019-12-18 | 2020-04-07 | 浙江明度智控科技有限公司 | 一种分布式系统中自增id的管理方法和装置 |
CN112364367A (zh) * | 2020-11-27 | 2021-02-12 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的对象处理方法、装置及设备 |
CN113065034A (zh) * | 2021-03-29 | 2021-07-02 | 上海安畅网络科技股份有限公司 | 一种分布式系统编号生成方法和系统 |
CN113065034B (zh) * | 2021-03-29 | 2022-11-18 | 上海安畅网络科技股份有限公司 | 一种分布式系统编号生成方法和系统 |
CN113905014A (zh) * | 2021-08-27 | 2022-01-07 | 拉卡拉支付股份有限公司 | 用于为终端设备分配id号的方法、服务器和存储介质 |
CN113905014B (zh) * | 2021-08-27 | 2024-05-28 | 拉卡拉支付股份有限公司 | 用于为终端设备分配id号的方法、服务器和存储介质 |
CN115292314A (zh) * | 2022-07-28 | 2022-11-04 | 上海数禾信息科技有限公司 | 序列号生成方法、装置、计算机设备和存储介质 |
CN115292314B (zh) * | 2022-07-28 | 2023-11-24 | 上海数禾信息科技有限公司 | 序列号生成方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107360224B (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360224A (zh) | 分布式系统中序列号生成方法、系统、设备及存储介质 | |
CN110704398B (zh) | 从MySQL到Oracle的数据库迁移方法、装置及计算机设备 | |
CN111090628B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN106970936A (zh) | 数据处理方法及装置、数据查询方法及装置 | |
CN107733972A (zh) | 一种短链接解析方法、装置及设备 | |
AU2018253478A1 (en) | Testing insecure computing environments using random data sets generated from characterizations of real data sets | |
CN110502519B (zh) | 一种数据聚合的方法、装置、设备及存储介质 | |
CN110716960B (zh) | 一种数据库查询方法、装置、设备及存储介质 | |
CN105630590A (zh) | 一种业务信息处理方法及装置 | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
CN112579621B (zh) | 数据展示方法、装置、电子设备及计算机存储介质 | |
US20180268375A1 (en) | Method and apparatus for repair or maintenance control of devices | |
CN112948396A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN110647564A (zh) | Hive建表方法、电子装置及计算机可读存储介质 | |
CN112445873B (zh) | 列表显示处理方法、相关装置、设备及介质 | |
CN108108392B (zh) | 商品数据管理方法、装置、计算机设备及存储介质 | |
CN113468175A (zh) | 数据压缩方法、装置、电子设备及存储介质 | |
CN108845892A (zh) | 分布式数据库的数据处理方法、装置、设备和计算机存储介质 | |
CN113742332A (zh) | 数据存储方法、装置、设备及存储介质 | |
US11151110B2 (en) | Identification of records for post-cloning tenant identifier translation | |
CN115795187A (zh) | 资源访问方法、装置及设备 | |
CN114003661A (zh) | 离线数据录入方法、装置、电子设备及存储介质 | |
CN114493799A (zh) | 一种分库分表管理专车订单数据的方法及系统 | |
CN114528108A (zh) | 一种序列号生成方法、装置、服务器和存储介质 | |
US20190370371A1 (en) | Predictive Data Distribution for Parallel Databases to Optimize Storage and Query Performance |
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 |