CN111385370A - Id分配方法、装置、存储介质及id分配系统 - Google Patents
Id分配方法、装置、存储介质及id分配系统 Download PDFInfo
- Publication number
- CN111385370A CN111385370A CN201811626455.9A CN201811626455A CN111385370A CN 111385370 A CN111385370 A CN 111385370A CN 201811626455 A CN201811626455 A CN 201811626455A CN 111385370 A CN111385370 A CN 111385370A
- Authority
- CN
- China
- Prior art keywords
- segment
- distribution
- target
- service
- distribution server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000009826 distribution Methods 0.000 claims abstract description 231
- 230000015654 memory Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 18
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000926 separation method Methods 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/50—Address allocation
-
- 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/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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进行分配,从而提高业务方的生产效率。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种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分配服务器,ID分配服务器用于接收业务方的ID分配请求,然后从数据库中获取对应的目标ID段分配给业务方,系统的核心数据存储在数据库层,ID分配服务器本身不保存数据,只处理业务方的ID分配请求逻辑,实现了数据存储层和逻辑处理层的分离,可以方便对逻辑处理层即ID分配服务器进行平行扩展,提供ID分配服务器的处理性能,提高业务的处理效率。同时,数据库表包括ID流水表和ID余额表,ID余额表与ID流水表分别处理分配ID段的不同工作,ID余额表负责对ID段的查询与更新,而每一次的目标ID段均是从ID流水表中获取,避免了多个业务方同时请求ID段分配而造成的数据不一致性的问题,保证不同的请求分配的ID段绝对不重复,保证业务的正常运行。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明ID分配方法的一实施例流程示意图;
图2为本发明ID分配装置的一实施例示意图;
图3为本发明ID分配系统的一实施例结构示意图;
图4为本发明ID分配系统中ID分配服务器的一实施例结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“计算机程序”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
本发明实施例提供一种ID分配方法,应用于ID分配系统,所述ID分配系统包括强一致性数据库和若干个ID分配服务器,如图1所示,所述方法包括以下步骤:
S10:ID分配服务器接收业务方根据ID分配服务器的地址信息发送的包含唯一标识的ID段分配请求。
本技术方案应用于业务处理中,业务处理随着业务量的增加而需要更加明确的业务分配系统,本实施例提供一种ID分配方法,应用于ID分配系统,主要是对各业务的ID进行分配,以明确各个业务对应的标识,提高业务的识别度,具体的,所述ID分配系统包括强一致性数据库和若干个ID分配服务器,所述ID分配服务器用于接收业务方的请求,具体的,业务方根据预先存储的ID分配服务器的节点列表及设定的规则获取其中一个ID分配服务器的地址信息,然后向所述ID分配服务器发送包含该业务方唯一标识的ID段分配请求,即向ID分配系统申请一段ID,业务方申请到的ID段会保存到业务方本地使用,业务方对申请到的ID段的使用方式由各业务方自行定义,相应的,ID分配服务器接收业务方发送的包含唯一标识的ID段分配请求,所述唯一标识用于识别业务方的若干种信息,包括身份信息、业务类型信息等。
S20:ID分配服务器识别所述业务方的业务类型,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段。
ID分配服务器接收到业务方的请求后,识别所述业务方对应的业务类型,在一种实施方式中,所述业务方的业务类型通过所述唯一标识进行识别,例如,所述唯一标识为01,通过所述唯一标识确定业务方的业务类型为A类型,所述唯一标识为02,通过所述唯一标识确定业务方的业务类型为B类型;在确定了业务方的业务类型后,ID分配服务器根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段,所述强一致性数据库是用于实现数据强一致性的分布式数据库,其中,所述强一致性数据库记录有余额表及流水表两种数据表,其中,所述余额表记录每种业务类型的ID段下次待分配的起始ID位置,所述流水表记录已经分配出去的ID段的流水信息,包括ID范围、分配给的业务方的唯一标识,请求序号,时间等等。本实施例中,ID分配服务器先从ID流水表中查询是否有对应的目标ID段,以此确定业务方所请求的ID段是否已经更新。
S30:若是,ID分配服务器从所述ID流水表获取所述目标ID段,将所述目标ID段分配给业务方。
S31:若否,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分配服务器进行处理,当业务方C1向ID分配服务器S1发送的请求均能得到有效的响应,此时增加业务方C1与ID分配服务器S1的地址信息的关联性,后续业务方C1的请求优先发送至ID分配服务器S1,让ID分配服务器S1处理业务方C1的请求;若所述反馈信息为负反馈信息,表明此时的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段为[10,99],起始位置为10,预配置的步长为15,则计算所述待分配ID段,并从所述待分配ID段计算目标ID段,获取到的目标ID段为[10,25],然后更新ID余额表的待分配ID段的起始位置,如上述获取目标ID段[10,25]后,余额表的待分配ID段的起始位置为26,余额表的待分配ID段为[26,99]。避免了单点数据库故障对服务的严重影响,实现了数据存储层的容灾保护,同时相对于普通的多点数据库,避免了多点数据同步造成的数据不一致性的问题。
本发明的一种实施例,所述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分配的效率,提高业务的处理效率。
如图3所示,在另一种实施例中,本发明提供了一种ID分配装置,包括:
请求接收模块10:用于接收业务方根据ID分配服务器的地址信息发送的包含唯一标识的ID段分配请求;
查询和操作模块20:用于识别所述业务方的业务类型,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段;若是从所述ID流水表获取所述目标ID段,将所述目标ID段分配给业务方;若否,从所述强一致性数据库的ID余额表读取对应的目标ID段,并更新所述ID余额表;将所述目标ID段写入ID流水表;将所述目标ID段分配给业务方。
本发明的一种实施例,所述装置还包括:
反馈模块:用于在预设的时长内,判断接收到的业务方的反馈信息;若所述反馈信息为正反馈信息,提高所述业务方与所述ID分配服务器的地址信息的关联性;若所述反馈信息为负反馈信息,将所述请求转发至ID分配系统的其它ID分配服务器。
本发明的一种实施例,所述查询和操作模块20执行从所述强一致性数据库的ID余额表读取对应的目标ID段,并更新所述ID余额表,包括:
ID分配服务器从所述强一致性数据库的ID余额表读取所述业务方对应业务的待分配ID段的起始位置,根据预配置的步长及所述起始位置计算所述待分配ID段,从所述待分配ID段获取目标ID段,并更新ID余额表的待分配ID段的起始位置。
本发明的一种实施例,所述查询和操作模块20执行从所述强一致性数据库的ID余额表读取对应的目标ID段,并更新所述ID余额表之前,还包括执行:
对所述强一致性数据库的ID余额表加锁;
所述查询和操作模块20执行将所述目标ID段写入ID流水表之后,还包括:
对所述强一致性数据库的ID余额表解锁。
本发明的一种实施例,所述查询和操作模块20执行识别所述业务方的业务类型,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段,包括:
识别所述业务方的业务类型,根据所述业务方的业务类型对所述请求作合法性检查;
若合法,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段;
若不合法,向业务方返回预设的提示信息。
本发明的一种实施例,所述请求接收模块10基于分布式特点进行分布,所述分布式特点包括基于地理位置的分布式特点和基于跳数的分布式特点。
本发明的一种实施例,所述装置还包括:
统计模块:用于统计各请求接收模块10在预定时长内接收到的请求数;
若所述请求数大于预设值,根据所述地理位置的分布式特点将所述请求转发至其它请求接收模块10。
在另一种实施例中,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例所述的ID分配方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例提供的一种计算机可读存储介质,可实现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分配系统,如图3所示是ID分配系统的一种实施例的结构示意图,所述ID分配系统包括强一致性数据库和若干个ID分配服务器,如图4所示是ID分配服务器的一种实施例的结构示意图,所述ID分配服务器包括处理器403、存储器405、输入单元407以及显示单元409等器件。本领域技术人员可以理解,图4示出的结构器件并不构成对所有ID分配服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器405可用于存储计算机程序401以及各功能模块,处理器403运行存储在存储器405的计算机程序401,从而执行设备的各种功能应用以及数据处理。存储器405可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器405只作为例子而非作为限定。
输入单元407用于接收信号的输入及接收用户的输入,输入单元407可包括触控面板以及其它输入设备,触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元409可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元409可采用液晶显示器、有机发光二极管等形式。处理器403是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器403内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
在一种实施方式中,所述ID分配服务器包括一个或多个处理器403,以及一个或多个存储器405,一个或多个计算机程序401,其中所述一个或多个计算机程序401被存储在存储器405中并被配置为由所述一个或多个处理器403执行,所述一个或多个计算机程序401配置用于执行以上实施例所述的ID分配方法。图4中所示的一个或多个处理器403能够执行、实现图3中所示的请求接收模块10、查询和操作模块20。
本发明实施例提供的一种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分配方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种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分配服务器。
3.根据权利要求1所述的方法,其特征在于,所述ID分配服务器从所述强一致性数据库的ID余额表读取对应的目标ID段,并更新所述ID余额表,包括:
ID分配服务器从所述强一致性数据库的ID余额表读取所述业务方对应业务的待分配ID段的起始位置,根据预配置的步长及所述起始位置计算所述待分配ID段,从所述待分配ID段获取目标ID段,并更新ID余额表的待分配ID段的起始位置。
4.根据权利要求1所述的方法,其特征在于,所述ID分配服务器从所述强一致性数据库的ID余额表读取对应的目标ID段,并更新所述ID余额表之前,还包括:
ID分配服务器对所述强一致性数据库的ID余额表加锁;
所述将所述目标ID段写入ID流水表之后,还包括:
ID分配服务器对所述强一致性数据库的ID余额表解锁。
5.根据权利要求1所述的方法,其特征在于,所述ID分配服务器识别所述业务方的业务类型,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段,包括:
ID分配服务器识别所述业务方的业务类型,根据所述业务方的业务类型对所述请求作合法性检查;
若合法,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段;
若不合法,向业务方返回预设的提示信息。
6.根据权利要求1所述的方法,其特征在于,所述ID分配服务器基于分布式特点进行分布,所述分布式特点包括基于地理位置的分布式特点和基于跳数的分布式特点。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
统计各ID分配服务器在预定时长内接收到的请求数;
若所述请求数大于预设值,根据所述地理位置的分布式特点将所述请求转发至其它ID分配服务器。
8.一种ID分配装置,其特征在于,包括:
请求接收模块:用于接收业务方根据ID分配服务器的地址信息发送的包含唯一标识的ID段分配请求;
查询和操作模块:用于识别所述业务方的业务类型,根据所述业务类型及唯一标识从所述强一致性数据库的ID流水表查询是否有对应的目标ID段;若是从所述ID流水表获取所述目标ID段,将所述目标ID段分配给业务方;若否,从所述强一致性数据库的ID余额表读取对应的目标ID段,并更新所述ID余额表;将所述目标ID段写入ID流水表;将所述目标ID段分配给业务方。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至7任一项所述的ID分配方法。
10.一种ID分配系统,所述ID分配系统包括强一致性数据库和若干个ID分配服务器,其特征在于,所述ID分配服务器包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行根据权利要求1至7任一项所述的ID分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626455.9A CN111385370B (zh) | 2018-12-28 | 2018-12-28 | Id分配方法、装置、存储介质及id分配系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626455.9A CN111385370B (zh) | 2018-12-28 | 2018-12-28 | Id分配方法、装置、存储介质及id分配系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111385370A true CN111385370A (zh) | 2020-07-07 |
CN111385370B CN111385370B (zh) | 2022-07-08 |
Family
ID=71222774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811626455.9A Active CN111385370B (zh) | 2018-12-28 | 2018-12-28 | Id分配方法、装置、存储介质及id分配系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111385370B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111163186A (zh) * | 2019-12-31 | 2020-05-15 | 南京领行科技股份有限公司 | 一种id生成方法、装置、设备和存储介质 |
CN112073554A (zh) * | 2020-09-08 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 全局唯一标识生成方法、设备以及计算机可读存储介质 |
CN113590716A (zh) * | 2021-08-09 | 2021-11-02 | 深圳市携客互联科技有限公司 | 基于erp系统集成接口业务数据自动同步方法 |
CN114363333A (zh) * | 2021-12-29 | 2022-04-15 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139255A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 分配资源标识和标识段的方法 |
US20140043964A1 (en) * | 2012-08-09 | 2014-02-13 | International Business Machines Corporation | Assigning identifiers to mobile devices according to their data service requirements |
CN105447023A (zh) * | 2014-08-25 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN108243264A (zh) * | 2016-12-27 | 2018-07-03 | 中国移动通信有限公司研究院 | 一种序列号生成方法及系统 |
CN108804545A (zh) * | 2018-05-18 | 2018-11-13 | 深圳市彬讯科技有限公司 | 分布式全局唯一id生成方法及设备 |
CN109104490A (zh) * | 2018-08-29 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 业务标识管理方法、装置、电子设备及存储介质 |
-
2018
- 2018-12-28 CN CN201811626455.9A patent/CN111385370B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139255A (zh) * | 2011-11-30 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 分配资源标识和标识段的方法 |
US20140043964A1 (en) * | 2012-08-09 | 2014-02-13 | International Business Machines Corporation | Assigning identifiers to mobile devices according to their data service requirements |
CN105447023A (zh) * | 2014-08-25 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
CN108243264A (zh) * | 2016-12-27 | 2018-07-03 | 中国移动通信有限公司研究院 | 一种序列号生成方法及系统 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN108804545A (zh) * | 2018-05-18 | 2018-11-13 | 深圳市彬讯科技有限公司 | 分布式全局唯一id生成方法及设备 |
CN109104490A (zh) * | 2018-08-29 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 业务标识管理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
朱浩乐: "大学城网上购物系统的设计与实现", 《微型电脑应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111163186A (zh) * | 2019-12-31 | 2020-05-15 | 南京领行科技股份有限公司 | 一种id生成方法、装置、设备和存储介质 |
CN111163186B (zh) * | 2019-12-31 | 2023-02-17 | 南京领行科技股份有限公司 | 一种id生成方法、装置、设备和存储介质 |
CN112073554A (zh) * | 2020-09-08 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 全局唯一标识生成方法、设备以及计算机可读存储介质 |
CN112073554B (zh) * | 2020-09-08 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 全局唯一标识生成方法、设备以及计算机可读存储介质 |
CN113590716A (zh) * | 2021-08-09 | 2021-11-02 | 深圳市携客互联科技有限公司 | 基于erp系统集成接口业务数据自动同步方法 |
CN114363333A (zh) * | 2021-12-29 | 2022-04-15 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
CN114363333B (zh) * | 2021-12-29 | 2023-11-28 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111385370B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111385370B (zh) | Id分配方法、装置、存储介质及id分配系统 | |
CN109684307B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN102982141B (zh) | 一种实现分布式数据库代理的方法及装置 | |
CN110661658B (zh) | 一种区块链网络的节点管理方法、装置及计算机存储介质 | |
CN111698228A (zh) | 系统访问权限授予方法、装置、服务器及存储介质 | |
CN109710190B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN109597853B (zh) | 业务场景元素序列号生成方法、装置、介质和计算机设备 | |
CN106981024B (zh) | 一种交易限额计算处理系统及其处理方法 | |
CN109766349B (zh) | 任务防重方法、装置、计算机设备及存储介质 | |
CN110008665B (zh) | 一种区块链的权限控制方法及装置 | |
CN111343142A (zh) | 一种基于区块链网络的数据处理方法、装置及存储介质 | |
CN105100051A (zh) | 实现数据资源访问权限控制的方法及系统 | |
CN108111325B (zh) | 一种资源分配方法及装置 | |
CN107659450B (zh) | 大数据集群资源的分配方法、分配装置及存储介质 | |
CN110599275A (zh) | 一种基于区块链网络的数据处理方法、装置及存储介质 | |
CN111324435A (zh) | 分布式任务调度及注册方法、设备和分布式任务调度系统 | |
CN109542894B (zh) | 用户数据集中存储方法、装置、介质和计算机设备 | |
CN111163186B (zh) | 一种id生成方法、装置、设备和存储介质 | |
CN107277188B (zh) | 一种确定ip地址归属信息的方法、客户端、服务器及业务系统 | |
CN111064786B (zh) | 账户标识管理方法及设备 | |
CN111008071A (zh) | 任务调度系统、方法和服务器 | |
CN109428906B (zh) | 请求处理方法、装置、系统及终端 | |
CN105978744A (zh) | 一种资源分配方法、装置及系统 | |
CN109104506B (zh) | 域名解析规则的确定方法、装置和计算机可读存储介质 | |
CN113542013B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221115 Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: Building B-1, North District, Wanda Commercial Plaza, Wanbo business district, No. 79, Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |