CN112965818B - 一种服务集群单元化分组方法、装置、设备以及介质 - Google Patents
一种服务集群单元化分组方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN112965818B CN112965818B CN202110218937.6A CN202110218937A CN112965818B CN 112965818 B CN112965818 B CN 112965818B CN 202110218937 A CN202110218937 A CN 202110218937A CN 112965818 B CN112965818 B CN 112965818B
- Authority
- CN
- China
- Prior art keywords
- service cluster
- order request
- service
- grouping
- request
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务集群单元化分组方法,应用于运维过程优化技术领域,用于解决占用的带宽及连接数的上升,使得各种数据请求无法分摊,造成整个系统达到瓶颈点的问题。本发明提供的方法包括:获取订单请求的请求标识;对所述请求标识进行哈希运算并按照服务集群数量取模得到第一哈希取模值;将第一哈希取模值作为分组参数;将订单请求发送到消息队列的主题中,各个服务集群从与自身对应的主题中获取订单请求,并通过服务集群的上游系统处理订单请求;当订单请求从服务集群的上游系统进入下游系统时,在消息队列中为订单请求添加对应的上游系统的标记。本发明提供的方法能够使客户端与服务端之间解耦,并且使得各服务端能够平均低分摊请求数量。
Description
技术领域
本发明涉及运维过程优化技术领域,尤其涉及一种服务集群单元化分组方法、装置、计算机设备以及存储介质。
背景技术
单元化架构是从并行计算领域发展而来,其基础建立在微服务化架构之上,通过对单元数据进行划分,使数据产生隔离,让对应的业务数据在所在单元内自上而下完成完整的链路处理。这种方式可以根据一定的数据区分规则,水平分片扩展数据,也可以快速切换故障单元,很大程度上缓解单数据库节点所带来的连接数和带宽压力,同时,微服务化架构如今已成为应用服务架构设计的主流思想,通过解耦业务之间的关联来实现服务的高可用性和易扩展性。
但是,伴随着实际业务量的不断增长,应用服务虽然可以通过部署新的节点来分摊压力,而大量与数据库交互占用的带宽及连接数的上升,使得各种数据请求无法分摊到各个节点上,而使得整个系统达到瓶颈点。因此,需要一种兼具能使客户端与服务端之间解耦,并且能使得各个服务端能够平均地分摊请求数量的单元化分组方法。
发明内容
本发明实施例提供一种服务集群单元化分组方法、装置、计算机设备及存储介质,以解决伴随着实际业务量的不断增长,大量与数据库交互占用的带宽及连接数的上升,使得各种数据请求无法分摊到各个节点上,而使得整个系统达到瓶颈点的问题。
在本发明的第一方面中,提供了一种服务集群单元化分组方法,包括以下步骤:
获取订单请求的请求标识;
对所述请求标识进行哈希运算得到请求标识哈希值,并且对所述请求标识哈希值按照预设的服务集群数量取模,得到第一哈希取模值;
将所述第一哈希取模值作为所述订单请求的分组参数;
将所述订单请求发送到消息队列的主题中,所述主题的序号与所述分组参数相对应,各个所述服务集群从与自身对应的所述主题中获取所述订单请求,并通过所述服务集群的上游系统处理所述订单请求;
当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记。
在本发明的第二方面中,提供了一种服务集群单元化分组装置,包括以下模块:
请求标识获取模块,用于获取订单请求的请求标识;
第一哈希取模模块,用于对所述请求标识进行哈希运算得到请求标识哈希值,并且对所述请求标识哈希值按照预设的服务集群数量取模,得到第一哈希取模值;
分组参数确定模块,用于将所述第一哈希取模值作为所述订单请求的分组参数;
消息队列发送模块,用于将所述订单请求发送到消息队列的主题中,所述主题的序号与所述分组参数相对应,各个所述服务集群从与自身对应的所述主题中获取所述订单请求,并通过所述服务集群的上游系统处理所述订单请求;
上游系统标记模块,用于当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记。
在本发明的第三方面中,提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述服务集群单元化分组方法的步骤。
在本发明的第四方面中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述服务集群单元化分组方法的步骤。
本发明实施例提供的服务集群单元化分组方法、装置、计算机设备及存储介质的有益效果包括:通过对订单请求的请求标识进行哈希运算得到请求标识哈希值,并且对该请求标识哈希值按照预设的服务集群数取模,得到哈希取模值并将该哈希取模值作为订单请求的分组参数,能够将各订单请求平均分摊到各个服务集群中使得各个服务集群的负载分布处于平均的状态,不会对某一个服务集群产生较大的压力;此外,还通过将订单请求根据自身的分组参数通过消息队列发送到对应的服务集群,起到客户端与服务端之间解耦的作用,可以快速切换故障的服务集群,并且很大程度上缓解单个服务集群的连接数和带宽压力。在某些具体的应用场景下,下游系统处理完订单请求之后,会将订单请求再次回传到上游系统进行处理,为了使得该订单请求能够回到其订单对应的上游系统,下游系统在处理该订单请求时会将对应的服务集群的上游系统的标记添加到该订单请求中,然后将其再次发送到消息队列中,可以使得上游系统再次接受到该订单请求并且进行处理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个具体实施例中服务集群单元化分组方法的应用环境示意图;
图2是本发明一个具体实施例中服务集群单元化分组方法的流程图;
图3是本发明另一个具体实施例中服务集群单元化分组方法的流程图;
图4是本发明另一个具体实施例中服务集群单元化分组方法的流程图;
图5是本发明一个具体实施例中服务集群单元化分组装置的结构示意图;
图6是本发明一个具体实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的服务集群单元化分组方法,可应用在如图1的应用环境中,其中,终端设备通过网络与服务器进行通信。其中,终端设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种服务集群单元化分组方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S1:获取订单请求的请求标识;
订单请求可以视为请求服务集群执行某项操作的请求,例如查询订单请求、执行某个业务如:付款、转账、风险识别等的请求。通常调用请求中会带有调用请求标识,调用请求标识/请求标识可以视为唯一标识请求的id,实际应用中,可以是用户ID、业务ID等,具体可以根据实际应用而定。
S2:对所述请求标识进行哈希运算得到请求标识哈希值,并且对所述请求标识哈希值按照预设的服务集群数量取模,得到第一哈希取模值;
具体地,设请求标识(在一个具体的实施例中是订单号)的键值值为K,对该请求标识进行哈希计算后得出的哈希值在按N取模,N为计划的服务集群数量,即如果服务集群数为3的话则N的值为3,哈希取模即为hash(K)mod 3。在这个示例中,哈希取模值可以是0、1、2,则该订单请求所得到的第一哈希取模值是0、1、2中的一个。
S3:将所述第一哈希取模值作为所述订单请求的分组参数;
分组参数的数值是直接取自第一哈希取模值而确定的,如步骤S2中所述,第一哈希取模值是根据服务集群的数量而运算得到的。订单请求得到自身的第一哈希取模值,并将其作为自身的分组参数,即可知自身将被发送到哪一个服务集群。还是以服务集群数为3为例,则该订单请求可能的第一哈希取模值是0、1、2,若某一个订单请求的第一哈希取模值为1,则其分组参数为1,并且将分配到第1号服务集群进行处理。进一步地,订单请求的第一哈希取模值将作为分组参数而被加入到订单请求的数据包中,作为后续分配到对应的服务集群的依据。
S4:将所述订单请求发送到消息队列的主题中,所述主题的序号与所述分组参数相对应,各个所述服务集群从与自身对应的所述主题中获取所述订单请求,并通过所述服务集群的上游系统处理所述订单请求;
消息队列(Message Queue,下称MQ)是一种通信方式,其中对消息队列的术语解释如下:
Broker(消息服务器)是消息队列的服务器。
Producer(生产者)是业务的发起方(即本提案中发送订单请求的用户),负责生产消息传输给Broker;
Consumer(消费者)业务的处理方(即本提案中的服务集群),负责从Broker获取消息并进行业务逻辑处理;
Topic(主题)是发布订阅模式下的消息统一汇集地,不同生产者向主题发送消息,由消息服务器分发到不同的订阅者,实现消息的广播
并且,特定生产者向特定Queue(队列)发送消息,消费者订阅特定的Queue完成指定消息的接收。
由于消息队列把系统中的消息集中式的处理和存储,所以消息队列主要有解耦,并发,和削峰的功能。消息队列的消息生产者和消息消费者无需确认对方是否存在,通过消息队列这个中间件的存在,使整个系统达到解耦的作用。如果不使用消息队列,当一个服务集群与数百个用户通信时,如果该服务集群的通信接口或者物理地址改变,那么数百个用户的客户端通信接口都的跟着变动,会对系统造成极大的负荷。
具体地,订单请求根据自身的所述分组参数发送到消息队列中的指定的主题,各个服务集群通过监听消息队列中与自身对应的主题来获取与自身对应订单请求,并从主题中获取被分配到自身的订单请求,然后进行业务处理。
S5:当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记。
在具体的操作中,可以在服务集群中对业务逻辑层的服务器进行分组处理,获得多个上游和下游逻辑层服务器分组,。值得注意的是,通常接收到请求的服务集群要调用的都是其下游的服务器,可以对连接层下游的业务逻辑层服务器以及业务逻辑层中各个服务器的下游服务器进行分组,分组的方法可以根据实际需要进行选择。
但是,在某些具体的应用场景下,下游系统处理完订单请求之后,会将订单请求再次回传到上游系统进行处理,为了使得该订单请求能够回到其订单对应的上游系统,下游系统在处理该订单请求时会将对应的服务集群的上游系统的标记(Tags)添加到该订单请求中,然后将其再次发送到消息队列中,使该订单请求再次被上游系统所消费到。
本发明实施例提供的服务集群单元化分组方法的有益效果包括:通过对订单请求的请求标识进行哈希运算得到请求标识哈希值,并且对该请求标识哈希值按照预设的服务集群数取模,得到第一哈希取模值并将该第一哈希取模值作为订单请求的分组参数,能够将各订单请求平均分摊到各个服务集群中使得各个服务集群的负载分布处于平均的状态,不会对某一个服务集群产生较大的压力;此外,还通过将订单请求根据自身的分组参数通过消息队列发送到对应的服务集群,起到客户端与服务集群之间解耦的作用,很大程度上缓解单个服务集群的连接数和带宽压力。还可以快速切换故障的服务集群。在某些具体的应用场景下,下游系统处理完订单请求之后,会将订单请求再次回传到上游系统进行处理,为了使得该订单请求能够回到其订单对应的上游系统,下游系统在处理该订单请求时会将对应的服务集群的上游系统的标记添加到该订单请求中,然后将其再次发送到消息队列中,可以使得上游系统再次接受到该订单请求并且进行处理。
在一个可选的实施例中,在步骤S1中,所述请求标识包括订单号。
优选地,由于支付场景的特殊性,不能参照电商的方式以用户为维度进行单元划分,需要业务整体设计一个参数来实现业务流程的贯穿工作,这块方案是以系统自主生成的订单号作为贯穿业务的请求标识,该请求标识需要保证全局的唯一性且在进行业务操作时候需要提供给所有的接口。
在一个具体的实施例中,在步骤S3中,还包括:将所述分组参数保存在所述订单请求的HTTP请求的报头中。
此处,将上述服务集群按单元组的数量进行分组,接口调用的方式以HTTP为调用协议,在后续的流程处理中,通过使用统一网关作为路由层进行分发工作,需要路由的分组参数需放置于所述订单请求的HTTP请求的报头之中,以使得路由层能够将识别该订单请求对应的服务集群的编号,从而进行调用和分发。
在一个具体的实施例中,如图3所示,在步骤S2之前,所述方法还包括:
S201:对所述服务集群的物理地址进行哈希运算得到物理地址哈希值;
S202:对所述物理地址哈希值按照预设的服务集群数量取模,得到第二哈希取模值;
S203:将所述第二哈希取模值作为该所述服务集群对应的所述主题的序号。
具体地,可以对各个服务器的物理地址信息进行哈希计算,将哈希计算的结果取模值相同的作为一组,作为一个服务集群,当然,也可以采用其他的哈希分组方式,进一步地,哈希分组选择的哈希函数可以根据实际需要而定。预先将服务器分组为不同的服务集群,以使得后续不同分组内的服务器只需要接收部分调用请求,进一步只需要连接部分状态层的分区,降低了服务器的压力,提高了系统的性能。
该第二哈希取模值是下述的服务集群的分组命名,需要与第二哈希取模值对应,假设单元数为3,单元名称可为CENT_A,CENT_B,CENT_C,与第二哈希取模值对应即可,不一定必须有关联性。进一步地,将第二哈希取模值作为该服务集群对应的消息队列中的主题的序号,例如某一服务集群的第二哈希取模值为1,则对应消息队列中的1号主题,并获取分组参数为1的订单请求。
需要指出的是,对各个服务集群中的服务器分组除了可以使用哈希函数分组,也可以按照固定规则分组,但是分组需要稳定。
在一个具体的实施例中,在步骤S2之前,所述方法还包括:
S211:对各个服务器的物理地址进行哈希运算得到服务器地址哈希值;
S212:将所述服务器地址哈希值在预设范围内的所述服务器划分为一个所述服务集群。具体地,还可用通过哈希算法将所述服务集群内部的服务器进行再次分组,包括对各个服务器的物理地址信息进行哈希计算,将哈希计算的结果取模值相同的作为一组,作为一个服务集群,当然,也可以采用其他的哈希分组方式,进一步地,哈希分组选择的哈希函数可以根据实际需要而定。在一个可选的实施例中,还可以给订单请求再次加上对应的第二分组参数。
在一个具体的实施例中,在步骤S4之前,所述方法还包括:
当某一所述服务集群下线时,在所述消息队列中将该所述服务集群对应的所述主题的所述分组参数指派给备用服务集群。
具体地,当一个服务集群出现故障或者需要维护时,可以直接在消息队列的Broker服务器中将备用的服务集群指定为需要的分组序号,并不需要关停整个系统。还以上述三个服务集群举例,系统中有0、1、2三个编号的服务集群,1号服务集群需要下线,则可以在1号服务集群下线的同时,在消息队列的Broker服务器中将备用的服务集群的分组序号指定为1,使得系统能够在异常情况发生时快速切换业务单元,保证业务服务的高可用性。
在一个具体的实施例中,在步骤S4之前,所述方法还包括:
当某一所述服务集群负载超过预设值时,在所述消息队列中将备用服务集群指派到负载超过预设值的所述服务集群所对应的所述主题,并获取以及处理所述主题中的所述订单请求。
具体地,当某一服务集群的负载过重时,也可以直接在消息队列的Broker服务器中将备用的服务集群指派到该负载过重的服务集群,以降低该集群的负载,提高系统的整体稳定性。还以上述三个服务集群举例,系统中有0、1、2三个编号的服务集群,1号服务集群的负载超过了预设值,则可以在消息队列的Broker服务器中将备用的服务集群的分组序号也指定为1。在一个可选的实施例中,所述消息队列是使用集群模式的RocketMQ。
具体地,在RocketMQ中主题只代表普通的消息队列,而队列是组成主题的更小单元,集群消费模式下一个消费者只消费该主题中部分队列中的消息,当一个消费者开启广播模式时则会消费该主题下所有队列中的消息。
在一个具体的实施例中,如图4所示,在步骤S5中,还包括:
当所述订单请求从所述下游系统返回到所述上游系统时,判断所述订单请求中的所述标记是否对应所述上游系统:
若所述订单请求中的所述标记不对应所述上游系统,则将该所述订单请求废弃;
若所述订单请求中的所述标记对应所述上游系统,则将该所述订单请求发送回所述上游系统进行处理。
具体地,在RocketMQ中,标记(Tags)是主题(Topic)下的次级消息类型,可以在同一个主题下基于标记进行消息过滤。标记的过滤需要经过两次比对,首先会在Broker端通过Tag hashcode进行一次比对过滤,匹配成功传到消费者端后再对具体主题进行比对,以防止Tag hashcode重复的情况。
服务集群中下游系统的消息发送方在发送消息的时候需要将同步链路中存下来的上游系统的标记放入消息的tag之中,上游系统的消费者在消费消息的时候需要判断该消息是否属于自身单元组的数据,不属于的话需要做丢弃处理。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于支付业务的单元化分组装置,该基于支付业务的单元化分组装置与上述实施例中服务集群单元化分组方法一一对应。如图5所示,该服务集群单元化分组装置包括请求标识获取模块101、第一哈希取模模块102、分组参数确定模块103、消息队列发送模块104和上游系统标记模块105。各功能模块详细说明如下:
请求标识获取模块101,用于获取订单请求的请求标识;
第一哈希取模模块102,用于对所述请求标识进行哈希运算得到请求标识哈希值,并且对所述请求标识哈希值按照预设的服务集群数量取模,得到第一哈希取模值;
分组参数确定模块103,用于将所述第一哈希取模值作为所述订单请求的分组参数;
消息队列发送模块104,用于将所述订单请求发送到消息队列的主题中,所述主题的序号与所述分组参数相对应,各个所述服务集群从与自身对应的所述主题中获取所述订单请求,并通过所述服务集群的上游系统处理所述订单请求;
上游系统标记模块105,用于当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记。
在一个具体的实施例中,第一哈希取模模块102还包括:
分组参数保存单元,用于将所述分组参数保存在所述订单请求的HTTP请求的报头中。
在一个具体的实施例中,服务集群单元化分组装置还包括:
物理地址哈希值获取模块,用于对所述服务集群的物理地址进行哈希运算得到物理地址哈希值;
第二哈希取模值获取模块,用于对所述物理地址哈希值按照预设的服务集群数量取模,得到第二哈希取模值;
主题序号确定模块,用于将所述第二哈希取模值作为该所述服务集群对应的所述主题的序号。
在同一个具体的实施例中,物理地址哈希值获取模块还包括:
服务器地址哈希值计算单元,用于对各个服务器的物理地址进行哈希运算得到服务器地址哈希值;
服务器划分单元,用于将所述服务器地址哈希值在预设范围内的所述服务器划分为一个所述服务集群。
在一个具体的实施例中,服务集群单元化分组装置还包括:
第一备用服务集群指派模块,用于当某一所述服务集群下线时,在所述消息队列中将该所述服务集群对应的所述主题的所述分组参数指派给备用服务集群。
在一个具体的实施例中,服务集群单元化分组装置还包括:
第二备用服务集群指派模块,用于当某一所述服务集群负载超过预设值时,在所述消息队列中将备用服务集群指派到负载超过预设值的所述服务集群所对应的所述主题,并获取以及处理所述主题中的所述订单请求。
在一个具体的实施例中,上游系统标记模块105还包括:
返回判断单元,用于当所述订单请求从所述下游系统返回到所述上游系统时,判断所述订单请求中的所述标记是否对应所述上游系统;返回判断单元还包括
废弃单元,用于若所述订单请求中的所述标记不对应所述上游系统,则将该所述订单请求废弃;
回送单元,用于若所述订单请求中的所述标记对应所述上游系统,则将该所述订单请求发送回所述上游系统进行处理。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于基于支付业务的单元化分组装置的具体限定可以参见上文中对于服务集群单元化分组方法的限定,在此不再赘述。上述基于支付业务的单元化分组装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,也可以是终端设备,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务集群单元化分组方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务集群单元化分组方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中服务集群单元化分组方法的步骤,例如图2所示的步骤S1至步骤S5及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中基于支付业务的单元化分组装置的各模块/单元的功能,例如图5所示模块101至模块105的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中服务集群单元化分组方法的步骤,例如图2所示的步骤S1至步骤S5及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中基于支付业务的单元化分组装置的各模块/单元的功能,例如图5所示模块101至模块106的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (7)
1.一种服务集群单元化分组方法,其特征在于,包括以下步骤:
获取订单请求的请求标识;
对所述请求标识进行哈希运算得到请求标识哈希值,并且对所述请求标识哈希值按照预设的服务集群数量取模,得到第一哈希取模值;
将所述第一哈希取模值作为所述订单请求的分组参数,将所述分组参数保存在所述订单请求的HTTP请求的报头中;
将所述订单请求发送到消息队列的主题中,所述主题的序号与所述分组参数相对应;
对所述服务集群进行分组,所述服务集群的分组编号对应所述消息队列中的主题序号,各个所述服务集群通过监听所述消息队列中序号与自身分组编号相对应的主题,从所述主题中获取与所述服务集群自身分组编号相对应的订单请求,并通过所述服务集群的上游系统处理所述订单请求;其中,对所述服务集群进行分组具体包括:对各个服务器的物理地址进行哈希运算得到服务器地址哈希值;将所述服务器地址哈希值在预设范围内的所述服务器划分为一个所述服务集群;对所述服务集群的物理地址进行哈希运算得到物理地址哈希值;对所述物理地址哈希值按照预设的服务集群数量取模,得到第二哈希取模值;将所述第二哈希取模值作为所述服务集群的分组编号;所述从主题中获取与所述服务集群自身分组编号相对应的订单请求具体为:以HTTP为调用协议,通过路由层识别所述报头中的分组参数,根据所述分组参数将订单请求分发至对应的服务集群;
当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记。
2.根据权利要求1所述的服务集群单元化分组方法,其特征在于,在所述将所述订单请求发送到消息队列中与所述分组参数对应的主题中,各个所述服务集群从自身对应的所述分组参数的所述主题中获取所述订单请求,并通过所述服务集群的上游系统处理所述订单请求的步骤之前,所述方法还包括:
当某一所述服务集群下线时,在所述消息队列中将该所述服务集群对应的所述主题的所述分组参数指派给备用服务集群。
3.根据权利要求1所述的服务集群单元化分组方法,其特征在于,在所述将所述订单请求发送到消息队列中与所述分组参数对应的主题中,各个所述服务集群从自身对应的所述分组参数的所述主题中获取所述订单请求,并通过所述服务集群的上游系统处理所述订单请求的步骤之前,所述方法还包括:
当某一所述服务集群负载超过预设值时,在所述消息队列中将备用服务集群指派到负载超过预设值的所述服务集群所对应的所述主题,并获取以及处理所述主题中的所述订单请求。
4.根据权利要求3所述的服务集群单元化分组方法,其特征在于,在所述当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记的步骤中,还包括:
当所述订单请求从所述下游系统返回到所述上游系统时,判断所述订单请求中的所述标记是否对应所述上游系统:
若所述订单请求中的所述标记不对应所述上游系统,则将该所述订单请求废弃;
若所述订单请求中的所述标记对应所述上游系统,则将该所述订单请求发送回所述上游系统进行处理。
5.一种服务集群单元化分组装置,其特征在于,包括以下模块:
请求标识获取模块,用于获取订单请求的请求标识;
第一哈希取模模块,用于对所述请求标识进行哈希运算得到请求标识哈希值,并且对所述请求标识哈希值按照预设的服务集群数量取模,得到第一哈希取模值;
分组参数确定模块,用于将所述第一哈希取模值作为所述订单请求的分组参数,将所述分组参数保存在所述订单请求的HTTP请求的报头中;
消息队列发送模块,用于对所述服务集群进行分组,所述服务集群的分组编号对应所述消息队列中的主题序号,各个所述服务集群通过监听所述消息队列中序号与自身分组编号相对应的主题,从所述主题中获取与所述服务集群自身分组编号相对应的订单请求,并通过所述服务集群的上游系统处理所述订单请求;其中,对所述服务集群进行分组具体包括:对各个服务器的物理地址进行哈希运算得到服务器地址哈希值;将所述服务器地址哈希值在预设范围内的所述服务器划分为一个所述服务集群;对所述服务集群的物理地址进行哈希运算得到物理地址哈希值;对所述物理地址哈希值按照预设的服务集群数量取模,得到第二哈希取模值;将所述第二哈希取模值作为该所述服务集群的分组编号;所述从主题中获取与所述服务集群自身分组编号相对应的订单请求具体为:以HTTP为调用协议,通过路由层识别所述报头中的分组参数,根据所述分组参数将订单请求分发至对应的服务集群;
上游系统标记模块,用于当所述订单请求从所述服务集群的所述上游系统进入所述服务集群的下游系统时,在所述消息队列中为所述订单请求添加对应的所述服务集群的上游系统的标记。
6.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述服务集群单元化分组方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述服务集群单元化分组方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110218937.6A CN112965818B (zh) | 2021-02-26 | 2021-02-26 | 一种服务集群单元化分组方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110218937.6A CN112965818B (zh) | 2021-02-26 | 2021-02-26 | 一种服务集群单元化分组方法、装置、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112965818A CN112965818A (zh) | 2021-06-15 |
CN112965818B true CN112965818B (zh) | 2022-08-26 |
Family
ID=76276096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110218937.6A Active CN112965818B (zh) | 2021-02-26 | 2021-02-26 | 一种服务集群单元化分组方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965818B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785863A (zh) * | 2022-04-21 | 2022-07-22 | 中国工商银行股份有限公司 | 基于Eureka的服务请求处理方法、装置、设备及存储介质 |
CN115033577B (zh) * | 2022-08-15 | 2022-11-01 | 深圳市星卡软件技术开发有限公司 | 设备订单数据的存储方法、查询方法及装置 |
CN115578160B (zh) * | 2022-11-24 | 2023-04-07 | 云账户技术(天津)有限公司 | 一种临时接单的方法及装置 |
CN116155922B (zh) * | 2023-04-17 | 2023-07-04 | 中国工商银行股份有限公司 | 会话数据处理方法、装置、系统、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145390A1 (en) * | 2009-12-11 | 2011-06-16 | Verizon Patent And Licensing, Inc. | Load balancing |
WO2013094837A1 (ko) * | 2011-12-19 | 2013-06-27 | 주식회사 솔박스 | 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치 |
CN108134830A (zh) * | 2017-12-20 | 2018-06-08 | 马上消费金融股份有限公司 | 基于消息队列的负载均衡方法、系统、装置及存储介质 |
CN109408602A (zh) * | 2018-10-16 | 2019-03-01 | 深圳中顺易金融服务有限公司 | 一种大数据综合处理方法及系统 |
CN110213316A (zh) * | 2018-06-01 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 路由方法及装置 |
CN112333083A (zh) * | 2020-10-30 | 2021-02-05 | 平安付科技服务有限公司 | 交易信息处理方法、装置、计算机设备及计算机可读介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731341B (zh) * | 2013-12-30 | 2018-08-03 | 广州华多网络科技有限公司 | 一种对即时通讯业务进行处理的方法及系统 |
CN111355816B (zh) * | 2020-05-22 | 2020-08-25 | 支付宝(杭州)信息技术有限公司 | 服务器选取方法、装置、设备及分布式服务系统 |
-
2021
- 2021-02-26 CN CN202110218937.6A patent/CN112965818B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145390A1 (en) * | 2009-12-11 | 2011-06-16 | Verizon Patent And Licensing, Inc. | Load balancing |
WO2013094837A1 (ko) * | 2011-12-19 | 2013-06-27 | 주식회사 솔박스 | 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치 |
CN108134830A (zh) * | 2017-12-20 | 2018-06-08 | 马上消费金融股份有限公司 | 基于消息队列的负载均衡方法、系统、装置及存储介质 |
CN110213316A (zh) * | 2018-06-01 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 路由方法及装置 |
CN109408602A (zh) * | 2018-10-16 | 2019-03-01 | 深圳中顺易金融服务有限公司 | 一种大数据综合处理方法及系统 |
CN112333083A (zh) * | 2020-10-30 | 2021-02-05 | 平安付科技服务有限公司 | 交易信息处理方法、装置、计算机设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112965818A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112965818B (zh) | 一种服务集群单元化分组方法、装置、设备以及介质 | |
CN109885410B (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN109618005B (zh) | 调用服务器的方法和代理服务器 | |
CN109428922B (zh) | 一种订阅发布方法及服务器 | |
CN108881448B (zh) | Api请求的处理方法及装置 | |
US20200344189A1 (en) | Communication method and communication apparatus | |
CN109618002B (zh) | 一种微服务网关优化方法、装置及存储介质 | |
US9207988B2 (en) | Method, system, and device for managing server hardware resources in a cloud scheduling environment | |
CN110166570B (zh) | 业务会话管理方法、装置、电子设备 | |
CN109889401B (zh) | 流量统计方法、装置、计算机设备和存储介质 | |
US20160183229A1 (en) | Ip phone network system, server apparatus, ip exchange and resource capacity expansion method | |
CN113645304B (zh) | 数据服务处理方法及相关设备 | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和系统 | |
CN107689878A (zh) | 基于命名调度的tcp长连接负载均衡系统 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN112398845B (zh) | 数据传输方法、数据传输装置、系统及电子设备 | |
CN1625109A (zh) | 虚拟化网络资源的方法和装置 | |
CN114173396B (zh) | 终端联网时间的确定方法和装置、电子设备和存储介质 | |
CN110545336A (zh) | Ip地址替换方法、装置、计算机设备和存储介质 | |
Mao et al. | Sharing based virtual network embedding algorithm with dynamic resource block generation | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN113691587B (zh) | 一种虚拟资源处理方法、装置、电子设备及存储介质 | |
CN112861004B (zh) | 一种富媒体的确定方法及装置 | |
CN110995890B (zh) | 域名请求的调度方法及装置 | |
CN109257227B (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 |