CN110933196A - 用于全球同服架构的id分配方法、系统及存储介质 - Google Patents
用于全球同服架构的id分配方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110933196A CN110933196A CN201911175764.3A CN201911175764A CN110933196A CN 110933196 A CN110933196 A CN 110933196A CN 201911175764 A CN201911175764 A CN 201911175764A CN 110933196 A CN110933196 A CN 110933196A
- Authority
- CN
- China
- Prior art keywords
- distributed
- pool
- generator
- segment
- service
- 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
Images
Classifications
-
- 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
-
- 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
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/51—Server architecture
- A63F2300/513—Server architecture server hierarchy, e.g. local, regional, national or dedicated for different tasks, e.g. authenticating, billing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5526—Game data structure
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5546—Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于全球同服架构的ID分配方法、主服务器、备用服务器、分配系统及计算机可读存储介质,在接收到业务请求方发送的ID分配请求后,能根据ID分配请求携带的ID类型请求分布式ID生成器为业务请求方分配与ID类型的ID段,ID段来源于分布式ID生成器生成的ID池,在分布式ID生成器分配ID段后将ID段缓存至本地ID池,最后从本地ID池中选取一个空闲的ID分配至业务请求方。因此,采用本方案,通过请求分布式ID生成器从生成的ID池中分配ID,而不必依赖数据库自增ID,避免了对数据库IO造成巨大的压力。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于全球同服架构的ID分配方法、主服务器、备用服务器、分配系统及计算机可读存储介质。
背景技术
服务器架构技术一直是技术热点,各种各样的数据平台系统都离不开服务器的架构设计,服务器架构设计的好坏直接决定了用户对产品的使用体验,在互联网时代,全世界用户或者玩家的距离开始越来越小,各种数据平台设计要能满足全球用户的使用已经成为了现实。
游戏服务器在全球同服架构的技术上也已经广泛应用,可以同时满足在线玩家几万到几十万人。为了对玩家以及各种业务进行统一的管理,对于每一个玩家和每一项业务而言,均需要对应生成与之对应的唯一ID,且需要保证ID的唯一性和总体递增的效果。当前主流的生成ID的方法是基于数据库自增ID然后将ID分配至每一个玩家或业务,基于数据库自增ID能够保证ID的唯一性和递增性,但是当新进玩家和业务的增多,基于数据库生成ID以及分配ID的操作会极为频繁,将会对数据库IO造成巨大的压力。
发明内容
本发明的目的在于解决现有技术中由于数据库生成和分配ID的操作的频繁而导致对数据库IO造成巨大压力的问题。因此,本发明提供一种用于全球同服架构的ID分配方法、主服务器、备用服务器、分配系统及计算机可读存储介质,不依赖于数据库生成和分配ID,避免了对数据库IO造成巨大的压力。
为解决上述问题,本发明的实施方式公开了一种用于全球同服架构的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段作为待同步数据写入所述备用服务器之后,还包括:
检测CPU内存的状态;
若所述CPU内存的占用率超出参考值,则向所述备用服务器请求主备切换;
判断是否接收到所述备用服务器反馈的同意切换的指令;
若是,则为所述备用服务器绑定对所述业务请求方服务的IP地址以使所述备用服务器启动为所述业务请求方分配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并分配至所述业务请求方。
进一步地,本发明的实施方式公开了一种备用服务器,包括:
接收模块,用于接收主服务器发送的主备切换指令和业务请求方的IP地址;
绑定模块,用于绑定所述IP地址;
启动模块,用于启动为所述业务请求方分配ID段的服务程序。
进一步地,本发明的实施方式公开了一种用于全球同服架构的ID分配系统,包括:
主服务器,用于在接收到业务请求方发出的ID分配请求后,在本地ID池中不存在与所述ID分配请求携带的ID类型一致的空闲ID时,请求分布式ID生成器为所述业务请求方分配与ID分配请求携带的ID类型对应的ID段,并将所述ID段进行本地缓存后,从所述ID段中再选取一个空闲的ID分配至业务请求方,在所述本地ID池中存在与所述ID分配请求携带的ID类型一致的空闲ID时,则从所述本地ID池中选取一个空闲ID并分配至所述业务请求方;
所述主服务器还用于请求备用服务器进行主备切换;
备用服务器,所述备用服务器用于在接收到所述主服务器发送的主备切换指令和业务请求方的IP地址后,绑定所述IP地址并启动为所述业务请求方分配ID段的服务程序。
进一步地,本发明的实施方式公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有分配程序,所述分配程序被处理器执行以实现如以上任意一种所述的用于全球同服架构的ID分配方法的步骤。
本发明提供一种用于全球同服架构的ID分配方法、主服务器、备用服务器、分配系统及计算机可读存储介质,具有以下有益效果:
在接收到业务请求方发送的ID分配请求后,能根据ID分配请求携带的ID类型请求分布式ID生成器为业务请求方分配与ID类型的ID段,ID段来源于分布式ID生成器生成的ID池,在分布式ID生成器分配ID段后将ID段缓存至本地ID池,最后从本地ID池中选取一个空闲的ID分配至业务请求方。因此,采用本方案,通过请求分布式ID生成器从生成的ID池中分配ID,而不必依赖数据库自增ID,避免了对数据库IO造成巨大的压力。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1(a)为本发明实施例1公开的第一种用于全球同服架构的ID分配方法的流程示意图;
图1(b)为本发明实施例1公开的第二种用于全球同服架构的ID分配方法的流程示意图;
图1(c)为本发明实施例1公开的第三种用于全球同服架构的ID分配方法的流程示意图;
图1(d)为本发明实施例1公开的第四种用于全球同服架构的ID分配方法的流程示意图;
图2(a)为本发明实施例2公开的一种主服务器的结构示意图;
图2(b)为本发明实施例2公开的一种备用服务器的结构示意图;
图3为本发明实施例3公开的一种用于全球同服架构的ID分配系统的结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
游戏服务器在全球同服架构的技术上也已经广泛应用,可以同时满足在线玩家几万到几十万人。为了对玩家以及各种业务进行统一的管理,对于每一个玩家和每一项业务而言,均需要对应生成与之对应的唯一ID,且需要保证ID的唯一性和总体递增的效果。当前主流的生成ID的方法是基于数据库自增ID然后将ID分配至每一个玩家或业务,基于数据库自增ID能够保证ID的唯一性和递增性,但是当新进玩家和业务的增多,基于数据库生成ID以及分配ID的操作会极为频繁,将会对数据库IO造成巨大的压力。
为了解决由于数据库生成和分配ID的操作的频繁而导致对数据库IO造成巨大压力的问题。本发明提供一种用于全球同服架构的ID分配方法、主服务器、备用服务器、分配系统及计算机可读存储介质,不依赖于数据库生成和分配ID,避免了对数据库IO造成巨大的压力。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
实施例1
下面结合图1(a)、图1(b)、图1(c)和图1(d)对本发明实施例1公开的一种用于全球同服架构的ID分配方法进行说明,图1(a)为本发明实施例1公开的第一种用于全球同服架构的ID分配方法的流程示意图,图1(b)为本发明实施例1公开的第二种用于全球同服架构的ID分配方法的流程示意图,图1(c)为本发明实施例1公开的第三种用于全球同服架构的ID分配方法的流程示意图,图1(d)为本发明实施例1公开的第四种用于全球同服架构的ID分配方法的流程示意图。
如图1(a)所示的,用于全球同服架构的ID分配方法应用于主服务器,包括:
S10:在接收业务请求方发出的ID分配请求后,解析ID分配请求中携带的ID类型。
S11:判断本地ID池中是否存在与ID类型一致的空闲ID,若是,则进入S12,若否,则进入S13。
S12:从本地ID池中选取一个空闲ID并分配至业务请求方。
S13:请求分布式ID生成器为业务请求方分配与ID类型对应的ID段,其中,ID段来源于分布式ID生成器生成的ID池。
S14:接收分布式ID生成器分配的ID段并将ID段进行缓存至本地ID池。
S15:从缓存至本地ID池的ID段中选取一个空闲ID分配至业务请求方。
具体的,ID类型可以为游戏用户的用户ID、游戏用户的邮箱ID、游戏用户参与的工会ID等,相适应的,业务请求方可以为游戏用户的邮箱业务请求分配ID、游戏用户注册时请求分配用户ID等。
进一步,作为本发明可选的实施例,S13中分布式ID生成器生成ID池包括:
设定ID池的起始点和结束点,以定义ID池的规模;
确定业务请求方所归属的节点ID和业务请求方发出的ID分配请求携带的ID类型;
以节点ID和ID类型生成ID池;
请求分布式ID生成器为业务请求方分配与ID类型对应的ID段包括:
请求分布式ID生成器为业务请求方分配与ID池的规模大小相同长度的ID段。
具体的,作为本发明可选的实施例,ID池的规模可以为100,根据ID需求量的大小,ID池的规模也可以为其他大小,本发明实施例在此并不作限定。
进一步,为了避免主服务器故障或宕机时,导致整个系统瘫痪的问题,可以设置备用服务器,如图1(b)所示的,在S13中分布式ID生成器完成分配ID段之后,用于全球同服架构的ID分配方法还包括:
S16:调用备用服务器接口。
S17:将分布式ID生成器分配的ID段作为待同步数据异步调用的写入备用服务器。
在分布式ID生成器分配完成ID段之后,将分配的ID段异步调用的写入备用服务器,采用异步调用将分配的ID段写入备用服务器的方案,避免了阻塞流程,生成ID的效率较高,当主节点监控到主服务器不存活时,可以快速切换到备用服务器,由备用服务器替代主服务器,避免了主服务器故障或宕机时,导致整个系统瘫痪的问题,提升了用户体验感。
需要说明的是,步骤S14与S16的执行顺序不分先后顺序,即可以先执行S14后执行S16或者同时执行S14和S16,对于S14和S16的执行顺序对于本发明实施例的实施并没有实质性的影响。
进一步,在主服务器将数据都同步至备用服务器之后,为了避免主服务器在CPU内存占用率过高而导致整个处理速度慢的问题,如图1(c)所示的,在S17之后,用于全球同服架构的ID分配方法还包括:
S18:检测CPU内存的状态;
S19:若CPU内存的占用率超出参考值,则向备用服务器请求主备切换;
S20:判断是否接收到备用服务器反馈的同意切换的指令,若是,则进入S21。
S21:为备用服务器绑定对业务请求方服务的IP地址以使备用服务器启动为业务请求方分配ID段的服务程序。
具体的,参考值可以根据CPU的参数设定,作为本发明可选的实施例,将参考值设定为整个CPU内存的80%,在CPU内存的占用率超出整个CPU内存的80%后,则向备用服务器请求主备切换。
需要说明的是,在进行主备切换时,也可以根据主服务器是否存活来进行主备切换,即中心节点监测到主服务器不存活时,则直接切换到备用服务器。
通过检测主服务器自身的CPU内存的状态,在CPU内存的占用率超出参考值时,向备用服务器请求主备切换,备用服务器同意切换后,切换至备用服务器,由备用服务器替代主服务器实现与主服务器一样的功能。服务程序指的是与主服务器实现相同的用于全球同服架构的ID分配方法的步骤。如此,避免了主服务器的CPU占用率过高时导致处理速度拖慢的问题。
进一步,为了在服务器宕机或重启时,分布式ID生成器分配的ID段未来得及写入数据库而引起数据回滚覆盖的情况发生。如图1(d)所示的,用于全球同服架构的ID分配方法还包括:
S22:检测是否接收到分布式ID生成器的重启指令,若是,则进入S23。
S23:重启分布式ID生成器;
S24:将与ID类型对应的ID池中的所有的ID从ID起始位开始后移设定值;
S25:将后移设定值对应的ID位设为新的起始位。
具体的,分布式ID生成器可以是服务器宕机时的重启,也可以是用户侧人为重启,在重启分布式ID生成器后,为避免分布式ID生成器分配的ID段未来得及写入数据库而引起数据回滚覆盖的情况发生,可以将ID池中所有的ID后移设定值,设定值可选为100。
本发明实施例1公开的一种用于全球同服架构的ID分配方法,在接收到业务请求方发送的ID分配请求后,能根据ID分配请求携带的ID类型请求分布式ID生成器为业务请求方分配与ID类型的ID段,ID段来源于分布式ID生成器生成的ID池,在分布式ID生成器分配ID段后将ID段缓存至本地ID池,最后从本地ID池中选取一个空闲的ID分配至业务请求方。因此,采用本方案,通过请求分布式ID生成器从生成的ID池中分配ID,而不必依赖数据库自增ID,避免了对数据库IO造成巨大的压力。
实施例2
下面结合图2(a)和图2(b)对本发明实施例2公开的一种主服务器和备用服务器进行说明,图2(a)为本发明实施例2公开的一种主服务器的结构示意图,图2(b)为本发明实施例2公开的一种备用服务器的结构示意图。
如图2(a)所示的,主服务器包括:
解析模块20,用于在接收业务请求方发出的ID分配请求后,解析ID分配请求中携带的ID类型;
判断模块21,用于判断本地ID池中是否存在与ID类型一致的空闲ID,若是,则进入第一选取模块,若否,则进入以下模块:
请求模块22,用于请求分布式ID生成器为业务请求方分配与ID类型对应的ID段,其中,ID段来源于ID生成器以分布式ID生成器的配置文件中定义的ID类型生成的ID池;
接收模块23,用于接收分布式ID生成器分配的ID段并将ID段进行缓存至本地ID池;
第二选取模块24,用于从缓存至本地ID池的ID段中选取一个空闲ID分配至业务请求方。
第一选取模块25,用于从本地ID池中选取一个空闲ID并分配至业务请求方。
如图2(b)所示的,备用服务器包括:
接收模块26,用于接收主服务器发送的主备切换指令和业务请求方的IP地址;
绑定模块27,用于绑定IP地址;
启动模块28,用于启动为业务请求方分配ID段的服务程序。
此外,本发明实施例还公开了计算机可读存储介质,计算机可读存储介质上存储有分配程序,分配程序被处理器执行以实现如以上实施例提到的的用于全球同服架构的ID分配方法的步骤。
本发明实施例2公开的一种主服务器、备用服务器和计算机可读存储介质,在接收到业务请求方发送的ID分配请求后,能根据ID分配请求携带的ID类型请求分布式ID生成器为业务请求方分配与ID类型的ID段,ID段来源于分布式ID生成器生成的ID池,在分布式ID生成器分配ID段后将ID段缓存至本地ID池,最后从本地ID池中选取一个空闲的ID分配至业务请求方。因此,采用本方案,通过请求分布式ID生成器从生成的ID池中分配ID,而不必依赖数据库自增ID,避免了对数据库IO造成巨大的压力。
实施例3
下面结合图3对本发明实施例3公开的一种用于全球同服架构的ID分配系统进行说明,图3位本发明实施例3公开的一种用于全球同服架构的ID分配系统的结构示意图。
如图3所示的,用于全球同服架构的ID分配系统3包括:主服务器30,用于在接收到业务请求方发出的ID分配请求后,在本地ID池中不存在与ID分配请求携带的ID类型一致的空闲ID时,请求分布式ID生成器为业务请求方分配与ID分配请求携带的ID类型对应的ID段,并将ID段进行本地缓存后,从ID段中再选取一个空闲的ID分配至业务请求方,在本地ID池中存在与ID分配请求携带的ID类型一致的空闲ID时,则从本地ID池中选取一个空闲ID并分配至业务请求方;
主服务器30还用于请求备用服务器31进行主备切换;
备用服务器31,备用服务器31用于在接收到主服务器发送的主备切换指令和业务请求方的IP地址后,绑定IP地址并启动为业务请求方分配ID段的服务程序。
需要说明的是,本发明实施例中的主服务器30的功能和上述用于全球同服架构的ID分配方法所适用的主服务器具有相同的功能,即能实现实施例1中提到的用于全球同服架构的ID分配方法。备用服务器31的功能和上述用于全球同服架构的ID分配方法中提到的备用服务器的功能相同,相同部分可以参见上述实施例的描述。
本发明实施例3公开的一种用于全球同服架构的ID分配系统,在接收到业务请求方发送的ID分配请求后,能根据ID分配请求携带的ID类型请求分布式ID生成器为业务请求方分配与ID类型的ID段,ID段来源于分布式ID生成器生成的ID池,在分布式ID生成器分配ID段后将ID段缓存至本地ID池,最后从本地ID池中选取一个空闲的ID分配至业务请求方。因此,采用本方案,通过请求分布式ID生成器从生成的ID池中分配ID,而不必依赖数据库自增ID,避免了对数据库IO造成巨大的压力。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种用于全球同服架构的ID分配方法,其特征在于,应用于主服务器,所述ID分配方法包括:
在接收业务请求方发出的ID分配请求后,解析所述ID分配请求中携带的ID类型;
判断本地ID池中是否存在与所述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段之后,还包括:
调用备用服务器接口;
将所述分布式ID生成器分配的所述ID段作为待同步数据异步调用写入所述备用服务器。
3.如权利要求2所述的用于全球同服架构的ID分配方法,其特征在于,在所述将所述分布式ID生成器分配的所述ID段作为待同步数据同步的写入所述备用服务器之后,还包括:
检测CPU内存的状态;
若所述CPU内存的占用率超出参考值,则向所述备用服务器请求主备切换;
判断是否接收到所述备用服务器反馈的同意切换的指令;
若是,则为所述备用服务器绑定对所述业务请求方服务的IP地址以使所述备用服务器启动为所述业务请求方分配ID段的服务程序。
4.如权利要求1-3任意一项所述的用于全球同服架构的ID分配方法,其特征在于,在所述请求分布式ID生成器为所述业务请求方分配与所述ID类型对应的ID段之前,还包括:
检测是否接收到所述分布式ID生成器的重启指令;
若是,则重启所述分布式ID生成器;
将与所述ID类型对应的ID池中的所有的ID从ID起始位开始后移设定值;
将后移所述设定值对应的ID位设为新的起始位,并进入所述请求分布式ID生成器为所述业务请求方分配与所述ID类型对应的ID段的步骤。
5.如权利要求4所述的用于全球同服架构的ID分配方法,其特征在于,所述分布式ID生成器生成所述ID池包括:
设定所述ID池的起始点和结束点,以定义所述ID池的规模;
确定所述业务请求方所归属的节点ID和所述业务请求方发出的ID分配请求携带的ID类型;
以所述节点ID和所述ID类型生成所述ID池;
所述请求分布式ID生成器为所述业务请求方分配与所述ID类型对应的ID段包括:
请求所述分布式ID生成器为所述业务请求方分配与所述ID池的规模大小相同长度的ID段。
6.一种主服务器,其特征在于,所述主服务器包括:
解析模块,用于在接收业务请求方发出的ID分配请求后,解析所述ID分配请求中携带的ID类型;
判断模块,用于判断本地ID池中是否存在与所述ID类型一致的空闲ID,若是,则进入第一选取模块,若否,则进入以下模块:
请求模块,用于请求分布式ID生成器为所述业务请求方分配与所述ID类型对应的ID段,其中,所述ID段来源于所述ID生成器以所述分布式ID生成器的配置文件中定义的ID类型生成的ID池;
接收模块,用于接收所述分布式ID生成器分配的所述ID段并将所述ID段进行缓存至所述本地ID池;
第二选取模块,用于从缓存至所述本地ID池的ID段中选取一个空闲ID分配至所述业务请求方。
所述第一选取模块,用于从所述本地ID池中选取一个空闲ID并分配至所述业务请求方。
7.一种备用服务器,其特征在于,包括:
接收模块,用于接收主服务器发送的主备切换指令和业务请求方的IP地址;
绑定模块,用于绑定所述IP地址;
启动模块,用于启动为所述业务请求方分配ID段的服务程序。
8.一种用于全球同服架构的ID分配系统,其特征在于,包括:
主服务器,用于在接收到业务请求方发出的ID分配请求后,在本地ID池中不存在与所述ID分配请求携带的ID类型一致的空闲ID时,请求分布式ID生成器为所述业务请求方分配与ID分配请求携带的ID类型对应的ID段,并将所述ID段进行本地缓存后,从所述ID段中再选取一个空闲的ID分配至业务请求方,在所述本地ID池中存在与所述ID分配请求携带的ID类型一致的空闲ID时,则从所述本地ID池中选取一个空闲ID并分配至所述业务请求方;
所述主服务器还用于请求备用服务器进行主备切换;
备用服务器,所述备用服务器用于在接收到所述主服务器发送的主备切换指令和业务请求方的IP地址后,绑定所述IP地址并启动为所述业务请求方分配ID段的服务程序。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分配程序,所述分配程序被处理器执行以实现如权利要求1至5任一项所述的用于全球同服架构的ID分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911175764.3A CN110933196B (zh) | 2019-11-26 | 2019-11-26 | 用于全球同服架构的id分配方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911175764.3A CN110933196B (zh) | 2019-11-26 | 2019-11-26 | 用于全球同服架构的id分配方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110933196A true CN110933196A (zh) | 2020-03-27 |
CN110933196B CN110933196B (zh) | 2022-12-06 |
Family
ID=69851274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911175764.3A Active CN110933196B (zh) | 2019-11-26 | 2019-11-26 | 用于全球同服架构的id分配方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110933196B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985187A (zh) * | 2020-08-31 | 2020-11-24 | 卫宁健康科技集团股份有限公司 | 分布式id获取方法、装置、电子设备和存储介质 |
CN114064721A (zh) * | 2021-11-15 | 2022-02-18 | 聚好看科技股份有限公司 | 服务器及业务后台流量调度方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102694878A (zh) * | 2012-05-16 | 2012-09-26 | 烽火通信科技股份有限公司 | 一种分段式id分配方法 |
CN102891868A (zh) * | 2011-07-19 | 2013-01-23 | 上海可鲁系统软件有限公司 | 一种分布式系统的负载均衡方法及装置 |
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN106993022A (zh) * | 2016-12-30 | 2017-07-28 | 中国银联股份有限公司 | 用于集群的标识管理方法、标识服务器及相应的系统 |
CN109104490A (zh) * | 2018-08-29 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 业务标识管理方法、装置、电子设备及存储介质 |
CN109525658A (zh) * | 2018-11-09 | 2019-03-26 | 广州虎牙科技有限公司 | 一种产号方法、服务器、设备、存储介质和业务系统 |
CN109949111A (zh) * | 2019-03-06 | 2019-06-28 | 深圳市智税链科技有限公司 | 电子票据标识分配方法、电子票据生成方法、装置及系统 |
-
2019
- 2019-11-26 CN CN201911175764.3A patent/CN110933196B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891868A (zh) * | 2011-07-19 | 2013-01-23 | 上海可鲁系统软件有限公司 | 一种分布式系统的负载均衡方法及装置 |
CN102694878A (zh) * | 2012-05-16 | 2012-09-26 | 烽火通信科技股份有限公司 | 一种分段式id分配方法 |
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
CN106993022A (zh) * | 2016-12-30 | 2017-07-28 | 中国银联股份有限公司 | 用于集群的标识管理方法、标识服务器及相应的系统 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN109104490A (zh) * | 2018-08-29 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 业务标识管理方法、装置、电子设备及存储介质 |
CN109525658A (zh) * | 2018-11-09 | 2019-03-26 | 广州虎牙科技有限公司 | 一种产号方法、服务器、设备、存储介质和业务系统 |
CN109949111A (zh) * | 2019-03-06 | 2019-06-28 | 深圳市智税链科技有限公司 | 电子票据标识分配方法、电子票据生成方法、装置及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985187A (zh) * | 2020-08-31 | 2020-11-24 | 卫宁健康科技集团股份有限公司 | 分布式id获取方法、装置、电子设备和存储介质 |
CN111985187B (zh) * | 2020-08-31 | 2021-06-08 | 卫宁健康科技集团股份有限公司 | 分布式id获取方法、装置、电子设备和存储介质 |
CN114064721A (zh) * | 2021-11-15 | 2022-02-18 | 聚好看科技股份有限公司 | 服务器及业务后台流量调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110933196B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109949111B (zh) | 电子票据标识分配方法、电子票据生成方法、装置及系统 | |
WO2018149221A1 (zh) | 一种设备管理方法及网管系统 | |
US11500832B2 (en) | Data management method and server | |
KR20200061393A (ko) | 리소스 스케줄링 방법, 스케줄링 서버, 클라우드 컴퓨팅 시스템, 및 저장 매체 | |
CN107368369B (zh) | 分布式容器管理方法及系统 | |
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
CN110933196B (zh) | 用于全球同服架构的id分配方法、系统及存储介质 | |
CN105069152B (zh) | 数据处理方法及装置 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
EP3629160A1 (en) | Method and device for managing vnf instantiation | |
CN110580195A (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN112380072A (zh) | 多数据中心访问方法及系统 | |
CN110633130A (zh) | 一种基于内存热插拔技术的虚拟内存管理方法和装置 | |
CN110955501A (zh) | 服务请求处理方法、装置、电子设备及可读介质 | |
CN103369038A (zh) | 平台即服务PaaS管理平台及方法 | |
CN110674095A (zh) | 一种ctdb集群扩展方法、装置、设备及可读存储介质 | |
CN102122268B (zh) | 一种虚拟机内存分配访问方法、装置和系统 | |
CN107734050B (zh) | 一种负载机分配方法、计算设备及负载机分配系统 | |
CN112835862B (zh) | 一种数据同步方法、装置、系统及存储介质 | |
CN112486664A (zh) | 一种节点扩容方法、系统、终端及存储介质 | |
CN111274022B (zh) | 服务器资源分配方法和系统 | |
CN110609707B (zh) | 在线数据处理系统生成方法、装置及设备 | |
CN107515725B (zh) | 一种核心网虚拟化系统共享磁盘的方法、装置及网管mano系统 | |
CN111340613B (zh) | 作业处理方法、系统以及存储介质 | |
CN114205354A (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 |