CN109388502A - 一种业务标识分配方法及装置 - Google Patents

一种业务标识分配方法及装置 Download PDF

Info

Publication number
CN109388502A
CN109388502A CN201811049922.6A CN201811049922A CN109388502A CN 109388502 A CN109388502 A CN 109388502A CN 201811049922 A CN201811049922 A CN 201811049922A CN 109388502 A CN109388502 A CN 109388502A
Authority
CN
China
Prior art keywords
service identification
service
connection pool
database connection
number value
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
Application number
CN201811049922.6A
Other languages
English (en)
Inventor
鄢华健
李涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Tianyan Technology Co Ltd
Original Assignee
Zhuhai Tianyan Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Tianyan Technology Co Ltd filed Critical Zhuhai Tianyan Technology Co Ltd
Priority to CN201811049922.6A priority Critical patent/CN109388502A/zh
Publication of CN109388502A publication Critical patent/CN109388502A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供了一种业务标识分配方法及装置,预先按照预设取模运算从多个业务标识中选取满足预设条件的业务标识存放于本地队列中,且针对不同的分布式服务节点所选用的预设条件不同,使得针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。

Description

一种业务标识分配方法及装置
技术领域
本申请涉及计算机领域,尤其涉及一种业务标识分配方法及装置。
背景技术
目前,随着互联网技术的快速发展,在业务处理过程中产生的业务数据的增长速度越来越快,为了便于对业务数据的高效管理,针对任何业务处理的过程,均需要使用一个唯一性标识对产生的业务数据进行唯一性标记。具体的,业务处理服务端在对客户端的业务请求进行处理时,需要使用一个唯一性标识来标记生成的业务数据。
例如,针对业务处理服务端为订单系统的情况,购物完成后,订单系统生成本次购物的订单数据,订单系统在生成订单数据之前,向业务系统请求分配一个业务标识,其中,针对订单系统向业务系统请求业务标识的过程,该订单系统即为调用方,然后,订单系统基于接收到的业务标识生成相应的订单数据,诸如此类。
其中,针对现有技术中提供的业务标识分配过程,在业务系统接收到调用方的业务标识分配请求后,向分布式服务节点获取业务标识,再将获取到的业务标识分配给对应的调用方,针对请求量比较大的情况下,多个分布式服务节点产生分布式全局唯一自增的业务标识的难度比较大,可能出现业务系统从多个分布式服务节点获取到的业务标识是相同的,导致存在同一个业务标识分配给多个调用方的情况,导致无法保证业务数据对应的业务标识的唯一性,进而无法满足系统的高并发能力、全局唯一性。
发明内容
本申请实施例的目的是提供一种业务标识分配方法及装置,针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种业务标识分配方法,包括:
接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
若是,则在所述至少一个可用业务标识中选取目标业务标识;
若否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列,以及从更新后的本地队列中选取目标业务标识;
将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
本申请实施例提供了一种业务标识分配装置,包括:
请求接收模块,用于接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
本地队列查询模块,用于查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
业务标识存储模块,用于若查询结果为否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列;
业务标识选取模块,用于若查询结果为是,则在所述至少一个可用业务标识中选取目标业务标识;以及在更新所述本地队列完成后,从更新后的本地队列中选取目标业务标识;
业务标识分配模块,用于将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
本申请实施例提供了一种业务标识分配设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现以下流程:
接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
若是,则在所述至少一个可用业务标识中选取目标业务标识;
若否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列,以及从更新后的本地队列中选取目标业务标识;
将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
本申请实施例提供了一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现以下流程:
接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
若是,则在所述至少一个可用业务标识中选取目标业务标识;
若否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列,以及从更新后的本地队列中选取目标业务标识;
将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
本申请实施例中的业务标识分配方法及装置,预先按照预设取模运算从多个业务标识中选取满足预设条件的业务标识存放于本地队列中,且针对不同的分布式服务节点所选用的预设条件不同,使得针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的业务标识分配系统的应用场景示意图;
图2为本申请实施例提供的业务标识分配方法的第一种流程示意图;
图3为本申请实施例提供的业务标识分配方法的第二种流程示意图;
图4为本申请实施例提供的业务标识分配方法的第三种流程示意图;
图5为本申请实施例提供的业务标识分配装置的模块组成示意图;
图6为本申请实施例提供的业务标识分配设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供了一种业务标识分配方法及装置,针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
图1为本申请一实施例提供的业务标识分配系统的应用场景示意图,如图1所示,该系统包括:分布式系统、业务系统和调用方,其中,该分布式系统包括:多个分布式服务节点,该业务系统分别与各分布式服务节点和调用方通信连接,业务系统向调用方分配业务标识的过程具体为:
由分布式系统中的多个分布式服务节点响应业务系统的业务标识获取请求,每个分布式服务节点中设置有mysql数据库;
业务系统通过数据库连接池中的数据获取链接向某一分布式服务节点中的mysql数据库获取指定数量的业务标识;
业务系统按照预设取模运算对该指定数量的业务标识进行筛选,将满足预设条件的业务标识存入本地队列中,其中,不同分布式服务节点对应的预设条件各不相同,并且利用java本地队列存放待分配的全局唯一的业务标识,能够提高业务系统的QPS(Query PerSecond,规定时间内所处理请求量);
业务系统在接收到调用方的业务标识分配请求后,从本地队列中选取业务标识分配给该调用方,即基于本地队列中存放的业务标识向调用方分配全局唯一ID。
在业务标识分配的过程中,预先按照预设取模运算从多个业务标识中选取满足预设条件的业务标识存放于本地队列中,且针对不同的分布式服务节点所选用的预设条件不同,使得针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
图2为本申请一实施例提供的业务标识分配方法的第一种流程示意图,图1中的方法能够由图1中的业务系统执行,如图2所示,该方法至少包括以下步骤:
S201,接收调用方发送的业务标识分配请求,其中,该调用方为用于生成业务数据的业务处理终端;
其中,调用方可以根据预设SQL规则自行创建库表结构,即在业务系统中通过spring或者java直接创建一个接口实例;
具体的,调用方需要使用业务标识时,将调用预先创建的接口实例向业务系统发送业务标识分配请求,业务系统接收调用方上传的业务标识分配请求,例如,调用方可以是用于生成订单数据的订单系统,调用方还可以是用于生成即时通信消息的即时消息系统;
S202,查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,该本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,该预设条件与分布式服务节点一一对应;
具体的,业务系统中设置有本地队列,业务系统预先从分布式服务节点中获取多个业务标识,并对获取到的多个业务标识进行筛选,将筛选出的满足预设条件的业务标识按序存入该本地队列中,其中,每个分布式服务节点对应的预设条件各不相同,这样即使业务系统从不同的分布式服务节点获取到的业务标识相同,由于该业务标识的取模运算结果仅满足其中一个分布式服务节点对应的预设条件,从而只是将该业务标识存入本地队列一次,进而能够避免出现业务标识重复分配的情况,保证了分配给调用方的业务标识的全局唯一性;
若查询结果为是,则执行S203,在查询到的至少一个可用业务标识中选取目标业务标识;
具体的,针对对本地队列进行查询得到的结果,可能是本地队列中预先存放的业务标识未分配完成,此时可以从至少一个可用业务标识中,根据各可用业务标识对应的号值,按照号值由小到大的顺序依次选取可用业务标识作为目标业务标识;
若查询结果为否,则执行S204,针对本地队列执行业务标识入队操作,并基于该业务标识入队操作更新该本地队列,以及从更新后的本地队列中选取目标业务标识;
具体的,针对对本地队列进行查询得到的结果,还可能是本地队列中预先存放的业务标识已被分配完成,即本地队列中不存在可用业务标识,此时需要重新从分布式服务节点中获取指定数量的业务标识,并对该指定数量的业务标识进行筛选,重新将筛选出的满足对应的预设条件的业务标识存入本地队列中,再从本地队列中存放的多个业务标识中,根据各可用业务标识对应的号值,按照号值由小到大的顺序依次选取可用业务标识作为目标业务标识;
S205,将选取出的目标业务标识分配给对应的调用方,以使该调用方基于该目标业务标识生成业务数据;
具体的,针对调用方为订单系统的情况,订单系统接收到业务系统分配的全局唯一自增的目标业务标识后,基于该目标业务标识生成订单数据,该订单数据由该目标业务标识唯一标记,即可以将该目标业务标识作为订单数据的订单号。
其中,如图3所示,在每次接收到业务标识分配请求后,先查询本地队列是否存在可用业务标识,若存在,则直接从本地队列中选取目标业务标识分配给该调用方,若不存在,即本地队列分配完成后,则需要再次针对本地队列执行业务标识入队操作,即再次向本地队列中存入筛选出的业务标识,对应的,上述S204针对本地队列执行业务标识入队操作,并基于该业务标识入队操作更新该本地队列,以及从更新后的本地队列中选取目标业务标识,具体包括:
S2041,在预先创建的预设数量的数据库连接池中,选取至少一个目标数据库连接池,其中,该预设数量与分布式服务节点的总数相等;
具体的,针对每个分布式服务节点中设置的数据库,创建对应的数据库连接池,其中,该数据库连接池中存储有多个数据获取链接,即每个分布式服务节点对应于一个数据库连接池,需要向哪个分布式服务节点获取业务标识,就将该分布式服务节点对应的数据库连接池确定为目标数据库连接池,其中,可以随机确定用于请求获取业务标识的目标分布式服务节点,也可以按照预设规则确定用于请求获取业务标识的目标分布式服务节点,最终,确保分布式系统中多个分布式服务节点的负载均衡即可;
其中,在本申请实施例中,采用数据库连接池技术,能够实现数据库连接池中的链接复用,从而减少分布式服务节点中数据库的创建开销,进而提高业务系统的业务标识获取效率。
S2042,基于选取出的目标数据库连接池,从与该目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识;
具体的,当业务系统需要向某一分布式服务节点获取业务标识时,从与该分布式服务节点对应的目标数据库连接池中选择一个数据获取链接,利用该数据获取链接,从分布式服务节点中的数据库中获取多个业务标识。
S2043,针对获取到的每个业务标识,对该业务标识对应的号值进行取模运算;
具体的,每个业务标识对应于一个号值,其中,业务标识对应的号值可以是业务标识本身,例如,业务标识为1000,那么该业务标识对应的号值也为1000,另外,业务标识对应的号值还可以与业务标识本身不同,例如,业务标识为XXXXXXX1000,那么该业务标识对应的号值也为1000,在从分布式服务节点处获取到多个业务标识后,对每个业务标识对应的号值进行取模运算,得到相应的取模运算结果。
S2044,在各业务标识对应的取模运算结果中,选取取模运算结果满足预设条件的业务标识;
具体的,由于根据各业务标识对应的取模运算结果,在获取到的指定数量的业务标识中选取待存入本地队列的业务标识过程中,所参考的预设条件与分布式服务节点一一对应,因此,需要先确定与目标数据库连接池对应的分布式服务节点的IP地址,再根据预设对应关系,确定与该IP地址对应的预设条件;或者,为了简化确定所需参考的预设条件的过程,可以直接将预设条件与目标数据库连接池关联,预先设置目标数据库连接池的唯一池序号,将取模运算时参考的预设条件定义为取模余数等于目标数据库连接池的池序号;
S2045,将选取出的满足预设条件的业务标识添加至本地队列中,以及从添加后的本地队列中选取目标业务标识;
例如,以分布式服务节点的数量等于4为例,针对IP地址为10.10.10.1的分布式服务节点,若与该分布式服务节点对应的数据库连接池的池序号为0,对应的,取模运算时参考的预设条件为取模余数等于0,则从该分布式服务节点获取的400个业务标识中,选取取模运算结果均为0的业务标识存放于本地队列中;
针对IP地址为10.10.10.2的分布式服务节点,若与该分布式服务节点对应的数据库连接池的池序号为1,对应的,取模运算时参考的预设条件为取模余数等于1,则从该分布式服务节点获取的400个业务标识中,选取取模运算结果均为1的业务标识存放于本地队列中,依次类推。
进一步的,由于引入取模筛选机制,即使同时向多个数据库连接池对应的分布式服务节点获取业务标识,也能够确保针对从不同的分布式服务节点获取的多个业务标识中筛选出的业务标识各不相同,这样可以引入数据库乐观锁机制,来防止全局锁竞争,即采用乐观锁机制在预先创建的预设数量的数据库连接池中,选取多个目标数据库连接池,以便同时利用多个数据库连接池从各自对应的分布式服务节点处获取业务标识,从而提高业务系统的QPS(Query Per Second,规定时间内所处理请求量);另外,为了防止查询和更新操作出现并发问题,还可以利用java lock,来防止本地锁竞争,即当前实例采用java Lock(数据库连接池的池序号)的方式,防止当前实例并发问题产生。
其中,上述S2042基于选取出的目标数据库连接池,从与该目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识,具体包括:
步骤一,基于选取出的目标数据库连接池,查询与该目标数据库连接池对应的分布式服务节点的当前最大号值,将该当前最大号值作为第一最大号值,其中,该当前最大号值可以是最新一次业务系统从该分布式服务节点获取的指定数量的业务标识的最大号值;
步骤二,根据确定出的第一最大号值、预先创建的数据库连接池的预设数量、以及预设入库步长,确定第二最大号值,其中,该预设入库步长可以是每次从指定数量的业务标识中选取出用于存入本地队列的业务标识的数量;
步骤三,根据确定出的第一最大号值和第二最大号值,从分布式服务节点处获取指定数量的的业务标识,具体的,针对业务标识对应的号值即为业务标识本身的情况,指定数量的业务标识可以是从第一最大号值加一至第二最大号值之间的数值。
具体的,若预先配置的预设入库步长为capacity、数据库连接池的预设数量为dbpool size、以及从mysql数据库中查询出的最大号值为value,此时,第一最大号值为value,第二最大号值为value+dbpool size*capacity,则指定数量的业务标识可以是从value+1至value+dbpool size*capacity之间的数值;
例如,预设入库步长capacity为100、数据库连接池的预设数量dbpool size为4、以及从mysql数据库中查询出的最大号值value为999,此时,第一最大号值为1000,第二最大号值为999+4*100=1399,则指定数量的业务标识可以是从1000至1399之间的数值。
进一步的,在上述步骤二根据确定出的第一最大号值、预先创建的数据库连接池的预设数量、以及预设入库步长,确定第二最大号值之后,还包括:
根据确定出的第二最大号值,更新与目标数据库连接池对应的分布式服务节点的当前最大号值。
其中,针对基于mysql数据库保存当前最大号值的情况,需要实时将分布式服务节点对应的当前最大号值更新为确定出的第二最大号值,具体的,将value+dbpool size*capacity更新到mysql数据库的value值。
在本申请实施例中,基于分布式服务节点中的mysql数据库的当前最大号值,结合预先创建的数据库连接池的预设数量、以及预设入库步长,进行业务标识自增,以实现从分布式服务节点处获取指定数量的业务标识。
其中,为了简化确定所需参考的预设条件的过程,可以直接将预设条件与数据库连接池关联,预先设置各数据库连接池的唯一池序号,将取模运算时参考的预设条件定义为取模余数等于目标数据库连接池的池序号,基于此,如图4所示,上述S2043针对获取到的每个业务标识,对该业务标识对应的号值进行取模运算,具体包括:
S20431,针对获取到的每个业务标识,将该业务标识对应的号值与预设数量进行相除运算,其中,该预设数量为预先创建的数据库连接池的总数,例如,分布式服务节点的数量为4,对应的数据库连接池的总数也为4,将业务标识对应的号值除以4得到的余数即为业务标识对应的相除运算结果;
对应的,上述S2044在各业务标识对应的取模运算结果中,选取取模运算结果满足预设条件的业务标识,具体包括:
S20441,确定目标数据库连接池的池序号,其中,该池序号为大于或等于零且小于预设数量的自然数,该预设数量的数据库连接池的池序号是连续的,例如,仍以分布式服务节点的数量为4为例,对应的,数据库连接池的池序号分别为0、1、2、3;
S20442,在各业务标识对应的相除运算结果中,选取相除运算得到的余数等于目标数据库连接池的池序号的业务标识;
具体的,若预设条件与目标数据库连接池的池序号有关,对应的,预设条件分别为取模余数等于0、取模余数等于1、取模余数等于2、取模余数等于3。
在具体实施时,针对IP地址为10.10.10.1的分布式服务节点,针对该分布式服务节点上设置的标识数据库,创建的数据库连接池的池序号为0,对应的,取模运算时参考的预设条件为取模余数等于0,则从该分布式服务节点获取的从1000至1399之间的400个业务标识中选取业务标识的号值与预设数量4相除得到的余数均为0的业务标识存放于本地队列,具体的,从IP地址为10.10.10.1的分布式服务节点获取到的业务标识分别为1000至1399,则选取的存放于本地队列的业务标识分别为:1000、1004、1008….、1396等等,此时,向本地队列中存入100个业务标识;
针对IP地址为10.10.10.2的分布式服务节点,针对该分布式服务节点上设置的标识数据库,创建的数据库连接池的池序号为1,对应的,取模运算时参考的预设条件为取模余数等于1,则从该分布式服务节点获取的从1000至1399之间的400个业务标识中选取业务标识的号值与预设数量4相除得到的余数均为1的业务标识存放于本地队列,具体的,从IP地址为10.10.10.2的分布式服务节点获取到的业务标识分别为1000至1399,则选取的存放于本地队列的业务标识分别为:1001、1005、1009….、1397等等,此时,向本地队列中存入100个业务标识;
针对IP地址为10.10.10.3的分布式服务节点,针对该分布式服务节点上设置的标识数据库,创建的数据库连接池的池序号为2,对应的,取模运算时参考的预设条件为取模余数等于2,则从该分布式服务节点获取的从1000至1399之间的400个业务标识中选取业务标识的号值与预设数量4相除得到的余数均为2的业务标识存放于本地队列,具体的,从IP地址为10.10.10.3的分布式服务节点获取到的业务标识分别为1000至1399,则选取的存放于本地队列的业务标识分别为:1002、1006、10010….、1398等等,此时,向本地队列中存入100个业务标识;
针对IP地址为10.10.10.4的分布式服务节点,针对该分布式服务节点上设置的标识数据库,创建的数据库连接池的池序号为3,对应的,取模运算时参考的预设条件为取模余数等于3,则从该分布式服务节点获取的从1000至1399之间的400个业务标识中选取业务标识的号值与预设数量4相除得到的余数均为3的业务标识存放于本地队列,具体的,从IP地址为10.10.10.4的分布式服务节点获取到的业务标识分别为1000至1399,则选取的存放于本地队列的业务标识分别为:1003、1007、1011….、1399等等,此时,向本地队列中存入100个业务标识;
由此可知,即使业务系统从不同的分布式服务节点获取到的业务标识相同,由于该业务标识的取模运算结果仅满足其中一个分布式服务节点对应的预设条件,即对业务标识对应的号值进行取模运算得到的数值是唯一的,从而只是将该业务标识存入本地队列一次,因此,针对从不同分布式服务节点获取到同一业务标识的情况,不会重复将该同一业务标识存入本地队列中,从而避免出现将该同一业务标识分别分配给不同的调用方的情况。
进一步的,考虑到可以存在某一分布式服务节点出现异常,如果业务系统还继续向异常的分布式服务节点获取业务标识,将导致业务系统无法正常获取到业务标识,因此,通过对数据库连接池的连接状态进行实时监测,以实现对分布式服务节点的运行状态进行实时监测,并且发现某一数据库连接池的连接状态出现异常时及时进行失效标记,进而暂停向该数据库连接池对应的分布式服务节点请求获取业务标识,基于此,上述方法还包括:
利用预先创建的守护进程,对预先创建的预设数量的数据库连接池的连接状态进行监测,具体的,针对每个数据库连接池,判断该数据库连接池的链接信号是否中断;
根据各数据库连接池的连接状态监测结果,将该连接状态监测结果指示为连接异常的数据库连接池标记为失效状态,具体的,当确定出数据库连接池的链接信号中断时,则确定该数据库连接池连接异常,并在池管理工厂中将该数据库连接池的连接状态标记为失效状态;
对应的,上述S2041在预先创建的预设数量的数据库连接池中,选取至少一个目标数据库连接池,具体包括:
在除标记为失效状态之外的数据库连接池中,选取目标数据库连接池,具体的,若监测到某一数据库连接池连接异常,由于已将该数据库连接池标记为失效状态,并且在选取目标数据库连接池时,剔除标记为失效状态的数据库连接池,这样将不会向该数据库连接池对应的分布式服务节点获取业务标识,以确保只向连接状态为正常状态的数据库连接池请求获取业务标识,从而保证业务系统能够及时从分布式服务节点处获取到指定数量的业务标识。
具体的,由于预设创建多个数据库连接池,当其中一个或多个数据库连接池dbpool出现链接异常,只要至少有一个数据库连接池dbpool仍能够正常提供工作,业务系统就能够从相应的分布式服务节点处获取到业务标识,并从获取到的业务标识中筛选出满足预设条件的业务标识存入本地队列中,以便响应调用方的业务标识分配请求,因此,多个数据库连接池dbpool配置能够为系统的稳定性和高可用提供保证。
进一步的,针对已标记为失效状态的数据库连接池可能会恢复正常,因此,当某一异常的数据库连接池恢复正常后,需要对该数据库连接池的连接状态进行更新,以保证各正常的数据库连接池的利用率,基于此,在将连接状态监测结果指示为连接异常的数据库连接池标记为失效状态之后,还包括:
确定利用守护进程对标记为失效状态的数据库连接池进行监测得到的连接状态监测结果,具体的,利用守护进程对各数据库连接池的连接状态进行持续监测,判断已标记为失效状态的数据库连接池的连接状态是否恢复正常;
若确定出的连接状态监测结果指示为连接正常,将该数据库连接池的连接状态由失效状态更新为正常状态,具体的,当已标记为失效状态的数据库连接池的连接状态恢复正常后,对该数据库连接池的连接状态进行更新。
具体的,在确定已标记为失效状态的数据库连接池的连接状态恢复正常后,将该数据库连接池的连接状态由失效状态更新为正常状态,以使在选取目标数据库连接池时,将该恢复正常的数据库连接池纳入可选范围,这样将恢复对该数据库连接池对应的分布式服务节点的业务标识获取操作,以保证业务系统能够及时从分布式服务节点处获取到指定数量的业务标识,同时提高各正常的数据库连接池的利用率,确保分布式服务节点之间的负载均衡。
本申请实施例中的业务标识分配方法,预先按照预设取模运算从多个业务标识中选取满足预设条件的业务标识存放于本地队列中,且针对不同的分布式服务节点所选用的预设条件不同,使得针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
对应上述图1至图4描述的业务标识分配方法,基于相同的技术构思,本申请实施例还提供了一种业务标识分配装置,图5为本申请实施例提供的业务标识分配装置的模块组成示意图,该装置用于执行图1至图4描述的业务标识分配方法,如图5所示,该装置包括:
请求接收模块501,用于接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
本地队列查询模块502,用于查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
业务标识存储模块503,用于若查询结果为否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列;
业务标识选取模块504,用于若查询结果为是,则在所述至少一个可用业务标识中选取目标业务标识;以及在更新所述本地队列完成后,从更新后的本地队列中选取目标业务标识;
业务标识分配模块505,用于将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
可选地,所述业务标识存储模块503,具体用于:
在预先创建的预设数量的数据库连接池中,选取目标数据库连接池,其中,所述预设数量与分布式服务节点的总数相等;
基于所述目标数据库连接池中存放的数据获取链接,从与所述目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识;
针对获取到的每个所述业务标识,对该业务标识对应的号值进行取模运算;
在各所述业务标识对应的取模运算结果中,选取所述取模运算结果满足预设条件的业务标识;
将选取出的满足预设条件的所述业务标识添加至本地队列中。
可选地,所述业务标识存储模块503,进一步具体用于:
查询与所述目标数据库连接池对应的分布式服务节点的当前最大号值,将所述当前最大号值作为第一最大号值;
根据所述第一最大号值、所述预设数量和预设入库步长确定第二最大号值;
根据所述第一最大号值和所述第二最大号值,从所述分布式服务节点处获取指定数量的业务标识。
可选地,所述装置还包括:
最大号值更新模块,用于根据所述第一最大号值、所述预设数量和预设入库步长,确定第二最大号值之后,根据所述第二最大号值,更新与所述目标数据库连接池对应的分布式服务节点的所述当前最大号值。
可选地,,所述业务标识存储模块503,还具体用于:
针对获取到的每个所述业务标识,将该业务标识对应的号值与所述预设数量进行相除运算;
确定所述目标数据库连接池的池序号,其中,所述池序号为大于或等于零且小于所述预设数量的自然数,所述预设数量的数据库连接池的池序号是连续的;
在各所述业务标识对应的相除运算结果中,选取相除运算得到的余数等于所述目标数据库连接池的所述池序号的业务标识。
可选地,所述装置还包括连接状态监测模块,其中,所述连接状态监测模块,用于:
利用预先创建的守护进程,对预先创建的预设数量的数据库连接池的连接状态进行监测;
根据各所述数据库连接池的连接状态监测结果,将所述连接状态监测结果指示为连接异常的数据库连接池标记为失效状态;
对应的,所述业务标识存储模块503,进一步具体用于:
在除标记为失效状态之外的数据库连接池中,选取目标数据库连接池。
可选地,所述装置还包括连接状态更新模块,其中,所述连接状态更新模块,用于:
确定利用所述守护进程对标记为失效状态的所述数据库连接池进行监测得到的连接状态监测结果;
若所述连接状态监测结果指示为连接正常,将所述数据库连接池的连接状态由失效状态更新为正常状态。
本申请实施例中的业务标识分配装置,预先按照预设取模运算从多个业务标识中选取满足预设条件的业务标识存放于本地队列中,且针对不同的分布式服务节点所选用的预设条件不同,使得针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
需要说明的是,本申请实施例提供的业务标识分配装置与本申请实施例提供的业务标识分配方法基于同一发明构思,因此该实施例的具体实施可以参见前述业务标识分配方法的实施,重复之处不再赘述。
进一步地,对应上述图1至图4所示的方法,基于相同的技术构思,本申请实施例还提供了一种业务标识分配设备,该设备用于执行上述的业务标识分配方法,图6为本申请实施例提供的业务标识分配设备的结构示意图。
如图6所示,业务标识分配设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对业务标识分配设备中的一系列计算机可执行指令。更进一步地,处理器601可以设置为与存储器602通信,在业务标识分配设备上执行存储器602中的一系列计算机可执行指令。业务标识分配设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606等。
在一个具体的实施例中,业务标识分配设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对业务标识分配设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
若是,则在所述至少一个可用业务标识中选取目标业务标识;
若否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列,以及从更新后的本地队列中选取目标业务标识;
将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
可选地,计算机可执行指令在被执行时,所述针对所述本地队列执行业务标识入队操作,包括:
在预先创建的预设数量的数据库连接池中,选取目标数据库连接池,其中,所述预设数量与分布式服务节点的总数相等;
基于所述目标数据库连接池中存放的数据获取链接,从与所述目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识;
针对获取到的每个所述业务标识,对该业务标识对应的号值进行取模运算;
在各所述业务标识对应的取模运算结果中,选取所述取模运算结果满足预设条件的业务标识;
将选取出的满足预设条件的所述业务标识添加至本地队列中。
可选地,计算机可执行指令在被执行时,所述从与所述目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识,包括:
查询与所述目标数据库连接池对应的分布式服务节点的当前最大号值,将所述当前最大号值作为第一最大号值;
根据所述第一最大号值、所述预设数量和预设入库步长确定第二最大号值;
根据所述第一最大号值和所述第二最大号值,从所述分布式服务节点处获取指定数量的业务标识。
可选地,计算机可执行指令在被执行时,在根据所述第一最大号值、所述预设数量和预设入库步长,确定第二最大号值之后,还包括:
根据所述第二最大号值,更新与所述目标数据库连接池对应的分布式服务节点的所述当前最大号值。
可选地,计算机可执行指令在被执行时,所述针对获取到的每个所述业务标识,对该业务标识对应的号值进行取模运算,包括:
针对获取到的每个所述业务标识,将该业务标识对应的号值与所述预设数量进行相除运算;
对应的,所述在各所述业务标识对应的取模运算结果中,选取所述取模运算结果满足预设条件的业务标识,包括:
确定所述目标数据库连接池的池序号,其中,所述池序号为大于或等于零且小于所述预设数量的自然数,所述预设数量的数据库连接池的池序号是连续的;
在各所述业务标识对应的相除运算结果中,选取相除运算得到的余数等于所述目标数据库连接池的所述池序号的业务标识。
可选地,计算机可执行指令在被执行时,还包含用于进行以下计算机可执行指令:
利用预先创建的守护进程,对预先创建的预设数量的数据库连接池的连接状态进行监测;
根据各所述数据库连接池的连接状态监测结果,将所述连接状态监测结果指示为连接异常的数据库连接池标记为失效状态;
对应的,所述在预先创建的预设数量的数据库连接池中,选取目标数据库连接池,包括:
在除标记为失效状态之外的数据库连接池中,选取目标数据库连接池。
可选地,计算机可执行指令在被执行时,还包含用于进行以下计算机可执行指令:
确定利用所述守护进程对标记为失效状态的所述数据库连接池进行监测得到的连接状态监测结果;
若所述连接状态监测结果指示为连接正常,将所述数据库连接池的连接状态由失效状态更新为正常状态。
本申请实施例中的业务标识分配设备,预先按照预设取模运算从多个业务标识中选取满足预设条件的业务标识存放于本地队列中,且针对不同的分布式服务节点所选用的预设条件不同,使得针对从不同分布式服务节点获取的多个业务标识,业务系统从中选取出用于存放于本地队列中的业务标识各不相同,接收到调用方的分配请求后,直接从本地队列中选取业务标识分配给该调用方,且当本地队列中的业务标识被分配完后,再次执行业务标识入队操作,这样即使业务系统同时向多个分布式服务节点获取到相同的业务标识,由于引入取模筛选机制,能够避免出现业务标识重复分配的情况,提升系统的高并发能力和高可用性,达到全局唯一、趋势自增的效果。
优选的,本申请实施例还提供一种业务标识分配设备,包括处理器601,存储器602,存储在存储器602上并可在处理器601上运行的计算机程序,该计算机程序被处理器601执行时实现上述业务标识分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
进一步地,对应上述图1至图4所示的方法,基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述业务标识分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种业务标识分配方法,其特征在于,所述方法包括:
接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
若是,则在所述至少一个可用业务标识中选取目标业务标识;
若否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列,以及从更新后的本地队列中选取目标业务标识;
将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
2.根据权利要求1所述的方法,其特征在于,所述针对所述本地队列执行业务标识入队操作,包括:
在预先创建的预设数量的数据库连接池中,选取目标数据库连接池,其中,所述预设数量与分布式服务节点的总数相等;
基于所述目标数据库连接池中存放的数据获取链接,从与所述目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识;
针对获取到的每个所述业务标识,对该业务标识对应的号值进行取模运算;
在各所述业务标识对应的取模运算结果中,选取所述取模运算结果满足预设条件的业务标识;
将选取出的满足预设条件的所述业务标识添加至本地队列中。
3.根据权利要求2所述的方法,其特征在于,所述从与所述目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识,包括:
查询与所述目标数据库连接池对应的分布式服务节点的当前最大号值,将所述当前最大号值作为第一最大号值;
根据所述第一最大号值、所述预设数量和预设入库步长确定第二最大号值;
根据所述第一最大号值和所述第二最大号值,从所述分布式服务节点处获取指定数量的业务标识。
4.根据权利要求3所述的方法,其特征在于,在根据所述第一最大号值、所述预设数量和预设入库步长,确定第二最大号值之后,还包括:
根据所述第二最大号值,更新与所述目标数据库连接池对应的分布式服务节点的所述当前最大号值。
5.根据权利要求2所述的方法,其特征在于,所述针对获取到的每个所述业务标识,对该业务标识对应的号值进行取模运算,包括:
针对获取到的每个所述业务标识,将该业务标识对应的号值与所述预设数量进行相除运算;
对应的,所述在各所述业务标识对应的取模运算结果中,选取所述取模运算结果满足预设条件的业务标识,包括:
确定所述目标数据库连接池的池序号,其中,所述池序号为大于或等于零且小于所述预设数量的自然数,所述预设数量的数据库连接池的池序号是连续的;
在各所述业务标识对应的相除运算结果中,选取相除运算得到的余数等于所述目标数据库连接池的所述池序号的业务标识。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
利用预先创建的守护进程,对预先创建的预设数量的数据库连接池的连接状态进行监测;
根据各所述数据库连接池的连接状态监测结果,将所述连接状态监测结果指示为连接异常的数据库连接池标记为失效状态;
对应的,所述在预先创建的预设数量的数据库连接池中,选取目标数据库连接池,包括:
在除标记为失效状态之外的数据库连接池中,选取目标数据库连接池。
7.根据权利要求6所述的方法,其特征在于,在将所述连接状态监测结果指示为连接异常的数据库连接池标记为失效状态之后,还包括:
确定利用所述守护进程对标记为失效状态的所述数据库连接池进行监测得到的连接状态监测结果;
若所述连接状态监测结果指示为连接正常,将所述数据库连接池的连接状态由失效状态更新为正常状态。
8.一种业务标识分配装置,其特征在于,包括:
请求接收模块,用于接收调用方发送的业务标识分配请求,其中,所述调用方为用于生成业务数据的业务处理终端;
本地队列查询模块,用于查询用于存放业务标识的本地队列中是否存在至少一个可用业务标识,其中,所述本地队列中存放的业务标识为利用预设取模运算在从分布式服务节点获取的多个业务标识中选取满足预设条件的业务标识,所述预设条件与所述分布式服务节点一一对应;
业务标识存储模块,用于若查询结果为否,则针对所述本地队列执行业务标识入队操作,并基于所述业务标识入队操作更新所述本地队列;
业务标识选取模块,用于若查询结果为是,则在所述至少一个可用业务标识中选取目标业务标识;以及在更新所述本地队列完成后,从更新后的本地队列中选取目标业务标识;
业务标识分配模块,用于将选取出的所述目标业务标识分配给所述调用方,以使所述调用方基于所述目标业务标识生成业务数据。
9.根据权利要求8所述的装置,其特征在于,所述业务标识存储模块,具体用于:
在预先创建的预设数量的数据库连接池中,选取目标数据库连接池,其中,所述预设数量与分布式服务节点的总数相等;
基于所述目标数据库连接池中存放的数据获取链接,从与所述目标数据库连接池对应的分布式服务节点处获取指定数量的业务标识;
针对获取到的每个所述业务标识,对该业务标识对应的号值进行取模运算;
在各所述业务标识对应的取模运算结果中,选取所述取模运算结果满足预设条件的业务标识;
将选取出的满足预设条件的所述业务标识添加至本地队列中。
10.根据权利要求9所述的装置,其特征在于,所述业务标识存储模块,进一步具体用于:
查询与所述目标数据库连接池对应的分布式服务节点的当前最大号值,将所述当前最大号值作为第一最大号值;
根据所述第一最大号值、所述预设数量和预设入库步长确定第二最大号值;
根据所述第一最大号值和所述第二最大号值,从所述分布式服务节点处获取指定数量的业务标识。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
最大号值更新模块,用于根据所述第一最大号值、所述预设数量和预设入库步长,确定第二最大号值之后,根据所述第二最大号值,更新与所述目标数据库连接池对应的分布式服务节点的所述当前最大号值。
12.根据权利要求9所述的装置,其特征在于,所述业务标识存储模块,还具体用于:
针对获取到的每个所述业务标识,将该业务标识对应的号值与所述预设数量进行相除运算;
确定所述目标数据库连接池的池序号,其中,所述池序号为大于或等于零且小于所述预设数量的自然数,所述预设数量的数据库连接池的池序号是连续的;
在各所述业务标识对应的相除运算结果中,选取相除运算得到的余数等于所述目标数据库连接池的所述池序号的业务标识。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括连接状态监测模块,其中,所述连接状态监测模块,用于:
利用预先创建的守护进程,对预先创建的预设数量的数据库连接池的连接状态进行监测;
根据各所述数据库连接池的连接状态监测结果,将所述连接状态监测结果指示为连接异常的数据库连接池标记为失效状态;
对应的,所述业务标识存储模块,进一步具体用于:
在除标记为失效状态之外的数据库连接池中,选取目标数据库连接池。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括连接状态更新模块,其中,所述连接状态更新模块,用于:
确定利用所述守护进程对标记为失效状态的所述数据库连接池进行监测得到的连接状态监测结果;
若所述连接状态监测结果指示为连接正常,将所述数据库连接池的连接状态由失效状态更新为正常状态。
CN201811049922.6A 2018-09-10 2018-09-10 一种业务标识分配方法及装置 Pending CN109388502A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811049922.6A CN109388502A (zh) 2018-09-10 2018-09-10 一种业务标识分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811049922.6A CN109388502A (zh) 2018-09-10 2018-09-10 一种业务标识分配方法及装置

Publications (1)

Publication Number Publication Date
CN109388502A true CN109388502A (zh) 2019-02-26

Family

ID=65418628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811049922.6A Pending CN109388502A (zh) 2018-09-10 2018-09-10 一种业务标识分配方法及装置

Country Status (1)

Country Link
CN (1) CN109388502A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073554A (zh) * 2020-09-08 2020-12-11 腾讯科技(深圳)有限公司 全局唯一标识生成方法、设备以及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064964A (zh) * 2012-12-29 2013-04-24 天津南大通用数据技术有限公司 一种支持分布式事务的数据库的连接方法
CN105812248A (zh) * 2016-05-09 2016-07-27 腾讯科技(深圳)有限公司 标识取值的分配方法和装置
CN108156236A (zh) * 2017-12-22 2018-06-12 平安养老保险股份有限公司 业务请求处理方法、装置、计算机设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064964A (zh) * 2012-12-29 2013-04-24 天津南大通用数据技术有限公司 一种支持分布式事务的数据库的连接方法
CN105812248A (zh) * 2016-05-09 2016-07-27 腾讯科技(深圳)有限公司 标识取值的分配方法和装置
CN108156236A (zh) * 2017-12-22 2018-06-12 平安养老保险股份有限公司 业务请求处理方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
别小凡: ""分布式内存数据库的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073554A (zh) * 2020-09-08 2020-12-11 腾讯科技(深圳)有限公司 全局唯一标识生成方法、设备以及计算机可读存储介质
CN112073554B (zh) * 2020-09-08 2023-04-18 腾讯科技(深圳)有限公司 全局唯一标识生成方法、设备以及计算机可读存储介质

Similar Documents

Publication Publication Date Title
EP2710470B1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US20170180469A1 (en) Method and system for forming compute clusters using block chains
WO2016025349A1 (en) Scalable fault resilient communications within distributed clusters
US9015308B2 (en) Multilayer distributed processing system
US20160050123A1 (en) Fault tolerant federation of computing clusters
CN105260203B (zh) 一种基于模型的Hadoop部署以及配置方法
CN103475722A (zh) 一种业务协同平台实现系统
CN101427220A (zh) 用于计算工具的计算环境的组件化自动供应和管理
CN108255592A (zh) 一种Quartz集群定时任务处理系统及方法
CN111082960B9 (zh) 数据的处理方法及装置
CN106095589A (zh) 一种分配分区的方法、装置及系统
CN106775953A (zh) 实现OpenStack高可用的方法与系统
CN103346910A (zh) 服务器可用状态的管理方法和装置
CN100518132C (zh) 分布式交通信息存储文件系统
CN114500523A (zh) 一种基于容器云平台的固定ip应用发布方法
CN103164262B (zh) 一种任务管理方法及装置
CN109388502A (zh) 一种业务标识分配方法及装置
US11108684B1 (en) Satisfying a set of services over given network resources
CN1625109A (zh) 虚拟化网络资源的方法和装置
CN110290163A (zh) 一种数据处理方法及装置
CN108334410A (zh) 一种分布式应用程序客户端轻量化方法以及计算机设备
CN113824801B (zh) 一种智能融合终端统一接入管理组件系统
CN107547622B (zh) 一种资源调整方法及装置
WO2022016969A1 (zh) 一种数据处理方法及装置
JP2007041873A (ja) 分配情報生成システム、及び、分配情報生成方法

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: 20190226

RJ01 Rejection of invention patent application after publication