CN111431959B - 一种基于发布订阅***机制的服务负载均衡方法及装置 - Google Patents
一种基于发布订阅***机制的服务负载均衡方法及装置 Download PDFInfo
- Publication number
- CN111431959B CN111431959B CN202010102576.4A CN202010102576A CN111431959B CN 111431959 B CN111431959 B CN 111431959B CN 202010102576 A CN202010102576 A CN 202010102576A CN 111431959 B CN111431959 B CN 111431959B
- Authority
- CN
- China
- Prior art keywords
- service
- copy
- load
- request
- load information
- 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
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于发布订阅***机制的服务负载均衡方法及装置,实现方式为:服务注册中心采集服务副本的负载信息,利用负载信息判断***中服务副本状态;服务注册中心根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;服务副本接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中;服务副本端的***工作时,查询允许通过的服务消费者列表,过滤服务请求,将允许通过的服务请求向服务副本发送,使其得到响应,实现服务化集成框架中服务负载均衡。本发明采用***机制,无需转发服务请求,时间开销少,效率高。
Description
技术领域
本发明属于计算机技术领域,涉及一种服务负载均衡技术,特别涉及一种基于发布订阅***机制的服务负载均衡方法及装置。
背景技术
发布/订阅的通信模式具有松耦合的特点。为保证服务质量,基于发布/订阅中间件构建的服务化集成框架采用多副本技术,通过增加服务副本冗余降低单个服务副本的负载,从而降低服务响应时间。由于服务化集成框架采用发布/订阅通信模式,服务消费者发布的服务请求可以同时被订阅了该主题的多个服务副本接收。为避免服务请求被多个服务副本重复处理,需要根据多个服务副本的负载情况从中选择一个合适的副本处理服务请求。
传统的负载均衡方案有以下两种:其一,在服务消费者一端选择随机的服务副本,向其发送服务请求;其二,将服务请求发送给一个独立的负载均衡器,由负载均衡器选择一个服务副本并将服务请求转发给该副本。在采用发布/订阅通信模式的服务化集成框架中,这两种方案都有其局限性。前者需要在服务消费者一端监控***中各服务副本的负载状态,而后者需要引入独立的节点,且服务请求的转发会带来额外的时延,影响服务响应时间。另外,这两种方案都没有充分利用发布/订阅通信模式中相同主题的服务请求数据可以被多个订阅者同时接收的特性。
发明内容
为了克服现有技术的不足,解决服务负载均衡问题,本发明人进行了锐意研究,提供了一种基于发布订阅***机制的服务负载均衡方法及装置,充分利用发布/订阅通信模式中相同主题的服务请求数据可以被多个订阅者同时接收的特性,采用***机制,过滤服务消费者请求,相对于独立的负载均衡器而言,实现简单,无需转发服务请求,时间开销少,效率高,从而完成本发明。
本发明的目的在于提供以下技术方案:
第一方面,一种基于发布订阅***机制的服务负载均衡方法,包括:
S100,服务注册中心采集服务副本的负载信息,利用负载信息判断***中服务副本状态;
S200,服务注册中心根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;
S300,服务副本接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中;
S400,服务副本端的***工作时,查询允许通过的服务消费者列表,过滤服务请求,将允许通过的服务请求向服务副本发送,使其得到响应,实现服务化集成框架中服务负载均衡。
第二方面,一种基于发布订阅***机制的服务负载均衡装置,包括:服务注册中心,用于接收服务副本的负载信息,利用负载信息判断***中服务副本状态;根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;
服务副本,用于接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中,并在服务请求通过***后对其响应。
本发明提供的一种基于发布订阅***机制的服务负载均衡方法及装置,带来了有益的技术效果:
本发明中方法和装置充分利用发布/订阅通信模式中相同主题的服务请求数据可以被多个订阅者同时接收的特性,采用***机制,过滤服务请求,相对于独立的负载均衡器而言,实现简单,无需转发服务请求,时间开销少,效率高。
附图说明
图1示出本发明提出的服务负载均衡方法的流程图;
图2示出发布/订阅式服务负载均衡实施例的流程图;
图3示出本发明负载均衡实施例中***工作示意图;
图4示出服务吞吐量对比;
图5示出服务平均响应时间对比。
具体实施方式
下面通过附图和实施例对本发明进一步详细说明。通过这些说明,本发明的特点和优点将变得更为清楚明确。
如图1所示,根据本发明的第一方面,提供了一种基于发布订阅***机制的服务负载均衡方法,包括:
S100,服务注册中心采集服务副本的负载信息,利用负载信息判断***中服务副本状态;其中,服务副本为服务提供者,作为服务的被调用方,在启动时,会将其服务名称,ip地址注册到服务注册中心;
S200,服务注册中心根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;
S300,服务副本接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中;其中,在本发明中,发布/订阅中间件是指位于应用层的网络协议,用于支持服务消费者和服务副本间以发布/订阅通信机制进行信息交互。
在服务消费者发送服务请求时,用于传输服务请求的报文中携带服务消费者标识,服务消费者标识可以为服务消费者ID(consumerid)。
S400,服务副本端的***工作时,查询允许通过的服务消费者列表,过滤服务请求,将允许通过的服务请求向服务副本发送,使其得到响应,从而实现服务化集成框架中服务负载均衡。
由于S300中其他服务副本未接收到该服务消费者标识,无法加入其发布/订阅中间件的***允许通过的服务消费者列表中,因而服务副本端的***工作时,查询允许通过的服务消费者列表后,将不允许该服务请求向这些服务副本发送,其他服务副本不会对该服务请求进行响应。
在本发明S100中,服务副本的负载信息包括服务副本已响应的服务消费者的总请求速率,为每个已响应的服务消费者的请求速率之和。总请求速率越大,服务副本的负载越大;总请求速率越小,服务副本的负载越小。
在本发明一种优选的实施方式中,S100中,还包括服务注册中心采集当前节点的负载信息。其中,节点为服务副本所在容器,对服务注册中心来说是客户端。
其中,节点的负载信息包括节点资源占用信息,节点资源占用信息包括节点的CPU占用率和内存占用率。资源占用量越大,负载越大;资源占用量越小,负载越小。
在本发明S100中,所述负载信息的采集是通过服务负载上传机制实现的,服务副本和节点启动之后定时向服务注册中心发送相应的负载信息。
负载信息仅包括服务副本的负载信息时,服务副本状态以服务副本的负载信息评定,负载信息包括节点和服务副本的负载信息时,服务副本状态以节点和服务副本的负载信息评定。与之相应地,在本发明S200中,判断响应新的服务请求的服务副本的标准为:
(a)负载信息仅包括服务副本的负载信息时判断响应新的服务请求的服务副本的标准:服务副本在满足服务请求速率的前提下,选择负载最小的服务副本进行新的服务请求的响应;
(b)负载信息包括节点和服务副本的负载信息时判断响应新的服务请求的服务副本的标准:服务副本在满足服务请求速率的前提下,选择负载最小的服务副本进行新的服务请求的响应;在服务副本负载相同时,选择所在节点负载最小的服务副本进行新的服务请求的响应。
根据本发明的第二方面,提供了一种基于发布订阅***机制的服务负载均衡装置,包括:
服务注册中心,用于接收服务副本的负载信息,利用负载信息判断***中服务副本状态;根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;
服务副本,用于接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中,并在服务请求通过***后对其响应。
在本发明中,该服务负载均衡装置还包括节点,其为服务副本所在容器,用于在启动后定时向服务注册中心发送负载信息。
在本发明中,服务注册中心,还用于接收当前节点的负载信息,节点的负载信息包括节点资源占用信息。
在本发明中,服务副本,还用于在启动后定时向服务注册中心发送负载信息,该负载信息为服务副本已响应的消费者数量。
本发明中的上述装置,对应的可用于执行上述方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本领域的技术人员可以理解:实现上述方法的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中。该程序在执行时,执行包括上述方法的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
实施例
下面根据实施例详细的描述本发明,使得本发明的目的和效果变的更加明显。
如图2所示,负载均衡方法中涉及服务注册中心、服务消费者和服务副本。服务注册中心管理、存储***中服务的相关信息(如服务的副本数、每个副本的地址和负载信息等),判断响应新的服务消费者请求的服务副本。服务副本接收服务消费者标识后进行相应的操作。整个流程由服务副本发布主题为当前负载的数据开始。
在图2所示的实施例的运行流程中,服务副本能够处理的极限服务请求速率为1000次/秒。服务消费者发送服务请求速率在服务副本的极限请求速率(1000次/秒)以内。
如图2所示的实施例中包含两个服务消费者、一个服务注册中心和相应的服务副本,负载均衡机制分别作用在服务副本和服务注册中心。服务注册中心判断响应新的服务请求的服务副本,发送服务消费者标识。服务副本上的负载均衡机制主要用于过滤服务请求,实现服务负载均衡。
假设***运行过程中服务请求如下:
服务副本:
(1)现有某服务的两个副本A1及A2,他们能够处理的极限服务请求速率均为1000次/秒;
(2)副本A1现已响应服务消费者1。
服务消费者:
(1)服务消费者1的服务请求速率为600次/秒,服务消费者2的服务请求速率为500次/秒;
(2)现服务消费者2发出服务请求。
根据负载均衡方法,服务注册中心执行具体的负载均衡策略,同时服务副本在收到服务注册中心的指令时执行具体动作。
在服务注册中心上:
(1)采集到服务副本A1和A2的负载信息后,由服务的极限请求速率可知,如果副本A1响应服务消费者2的请求,将超出其极限速率,所以,服务消费者2的请求将由副本A2来响应;
(2)向副本A2发送服务消费者2的标识(consumerid)。
在服务副本上:
(1)当服务副本A2接收到服务消费者2的标识后,将此标识加入到***允许通过的服务消费者列表中;
(2)如图3所示,服务副本A2端的***工作时,接收到带有服务消费者标识的RTPS报文,查询允许通过的服务消费者列表,过滤服务消费者请求(If(consumer_id inAllowList){allow;}else{deny;}),将服务消费者2的服务请求向服务副本A2发送,最后服务副本A2响应服务消费者2的服务请求,从而实现该服务的负载均衡。
实验例服务吞吐量和服务响应时间测试
测试说明:服务吞吐量是***在单位时间内能够处理的服务请求数量。服务吞吐量越高,***性能越好。服务平均响应时间从整体上反映了***性能的变化,服务平均响应时间越小,***的整体性能越好。设计实验对比固定副本数策略(由固定的服务副本处理服务消费者的服务请求)和采用本发明中负载均衡策略下,***中服务吞吐量的变化和服务平均响应时间变化。具体实验步骤如下:
1)在测试节点A,B,C上分别部署并启动多个服务副本;
2)采用固定副本数策略,在测试节点D开启多个服务消费者,并逐渐增加服务消费者的请求速率,记录服务平均响应时间和服务吞吐量随服务请求速率变化情况。根据服务响应时间计算服务平均响应时间;
3)采用本发明中的负载均衡策略,在测试节点D开启多个服务消费者,并逐渐增加服务消费者的请求速率,使得记录服务响应时间和服务吞吐量随服务请求速率变化情况。根据服务响应时间计算服务平均响应时间。
A)服务吞吐量测试结果:
服务吞吐量测试结果如图4所示。
从实验结果可以看出,在负载均衡策略下随着服务副本数量的增加,服务的吞吐量也逐渐增大,相对于固定副本数策略下的吞吐量(1200个/秒),在负载均衡策略下,***中服务处理请求的能力更强。
B)服务平均响应时间测试结果:
服务平均响应时间测试结果如图5所示。
从测试结果可以看出,采用固定副本数策略时,服务的平均响应时间持续增大,随着服务请求速率的增大,服务的平均响应时间增速明显加快。
在负载均衡策略下,将服务请求分散到不同的服务副本上处理,使得服务平均响应时间会有所减低,并且服务平均响应时间最大值为0.695s。
在负载均衡策略下,服务平均响应时间有所波动,但不超过最大的服务平均响应时间(0.695s)。相对于固定副本数策略,负载均衡策略能够有效的降低服务平均响应时间。
以上结合了优选的实施方式对本发明进行了说明,不过这些实施方式仅是范例性的,仅起到说明性的作用。在此基础上,可以对本发明进行多种替换和改进,这些均落入本发明的保护范围内。
Claims (10)
1.一种基于发布订阅***机制的服务负载均衡方法,其特征在于,包括:
S100,服务注册中心采集服务副本的负载信息,利用负载信息判断***中服务副本状态;
S200,服务注册中心根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;
S300,服务副本接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中;
S400,服务副本端的***工作时,查询允许通过的服务消费者列表,过滤服务请求,将允许通过的服务请求向服务副本发送,使其得到响应,实现服务化集成框架中服务负载均衡。
2.根据权利要求1所述的服务负载均衡方法,其特征在于,服务副本的负载信息包括服务副本已响应的服务消费者的总请求速率。
3.根据权利要求1所述的服务负载均衡方法,其特征在于,还包括服务注册中心采集服务副本所在节点的负载信息。
4.根据权利要求1所述的服务负载均衡方法,其特征在于,所述负载信息的采集是通过服务负载上传机制实现的,服务副本启动之后定时向服务注册中心发送相应的负载信息。
5.根据权利要求3所述的服务负载均衡方法,其特征在于,节点启动之后定时向服务注册中心发送相应的负载信息。
6.根据权利要求1所述的服务负载均衡方法,其特征在于,负载信息仅包括服务副本的负载信息时,判断响应新的服务请求的服务副本的标准:服务副本在满足服务请求速率的前提下,选择负载最小的服务副本进行新的服务请求的响应。
7.根据权利要求3所述的服务负载均衡方法,其特征在于,负载信息包括节点和服务副本的负载信息时,判断响应新的服务请求的服务副本的标准:服务副本在满足服务请求速率的前提下,选择负载最小的服务副本进行新的服务请求的响应;在服务副本负载相同时,选择所在节点负载最小的服务副本进行新的服务请求的响应。
8.一种基于发布订阅***机制的服务负载均衡装置,其特征在于,包括:服务注册中心,用于接收服务副本的负载信息,利用负载信息判断***中服务副本状态;根据服务副本状态以及服务请求的速率,判断响应新的服务请求的服务副本,并向此服务副本发送请求该服务的服务消费者标识;
服务副本,用于接收到服务消费者标识后,将服务消费者标识加入到发布/订阅中间件的***允许通过的服务消费者列表中,并在服务请求通过***后对其响应。
9.根据权利要求8所述的服务负载均衡装置,其特征在于,该服务负载均衡装置还包括服务副本所在节点,用于在启动后定时向服务注册中心发送负载信息。
10.根据权利要求9所述的服务负载均衡装置,其特征在于,服务注册中心,还用于接收节点的负载信息,节点的负载信息包括节点资源占用信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102576.4A CN111431959B (zh) | 2020-02-19 | 2020-02-19 | 一种基于发布订阅***机制的服务负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102576.4A CN111431959B (zh) | 2020-02-19 | 2020-02-19 | 一种基于发布订阅***机制的服务负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431959A CN111431959A (zh) | 2020-07-17 |
CN111431959B true CN111431959B (zh) | 2022-10-21 |
Family
ID=71547957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010102576.4A Active CN111431959B (zh) | 2020-02-19 | 2020-02-19 | 一种基于发布订阅***机制的服务负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431959B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779017B1 (en) * | 1999-04-29 | 2004-08-17 | International Business Machines Corporation | Method and system for dispatching client sessions within a cluster of servers connected to the world wide web |
CN108881184A (zh) * | 2018-05-30 | 2018-11-23 | 努比亚技术有限公司 | 访问请求处理方法、终端、服务器及计算机可读存储介质 |
CN110062043A (zh) * | 2019-04-16 | 2019-07-26 | 杭州朗和科技有限公司 | 服务治理方法、服务治理装置、存储介质及电子设备 |
CN110442432A (zh) * | 2019-08-22 | 2019-11-12 | 北京三快在线科技有限公司 | 业务处理方法、***、装置、设备及存储介质 |
-
2020
- 2020-02-19 CN CN202010102576.4A patent/CN111431959B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779017B1 (en) * | 1999-04-29 | 2004-08-17 | International Business Machines Corporation | Method and system for dispatching client sessions within a cluster of servers connected to the world wide web |
CN108881184A (zh) * | 2018-05-30 | 2018-11-23 | 努比亚技术有限公司 | 访问请求处理方法、终端、服务器及计算机可读存储介质 |
CN110062043A (zh) * | 2019-04-16 | 2019-07-26 | 杭州朗和科技有限公司 | 服务治理方法、服务治理装置、存储介质及电子设备 |
CN110442432A (zh) * | 2019-08-22 | 2019-11-12 | 北京三快在线科技有限公司 | 业务处理方法、***、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
多Web服务器负载均衡技术的研究;赵水宁 等;《电信科学》;20010715(第7期);第4节,附图2-3 * |
无负载均衡器的Linux高可用负载均衡集群***;谢作贵等;《计算机工程》;20070205(第03期);第1-2节,附图1 * |
Also Published As
Publication number | Publication date |
---|---|
CN111431959A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112640371B (zh) | 在分布式存储环境上执行数据操作的方法和*** | |
CN109873736A (zh) | 一种微服务监控方法及*** | |
CN111641583A (zh) | 一种物联网资源接入***及资源接入方法 | |
JP2005525611A (ja) | コンピューターネットワークを通るコンテンツの配給送達を容易にする方法および装置 | |
CN103458013A (zh) | 一种流媒体服务器集群负载均衡***及均衡方法 | |
EP1961174A1 (en) | Method and system for delivering messages in a communication system | |
CN107124453A (zh) | 平台互联网关堆叠部署的负载均衡***及视频呼叫方法 | |
EP4241435A1 (en) | Methods, systems, and computer readable media for providing optimized binding support function (bsf) packet data unit (pdu) session binding discovery responses | |
CN105009520B (zh) | 用于在通信网络中传送内容的方法及其装置 | |
CN114071168A (zh) | 混流直播流调度方法及装置 | |
CN109947081B (zh) | 网联车辆控制方法及装置 | |
CN114338769B (zh) | 访问请求的处理方法及装置 | |
CN114363963A (zh) | 一种云原生upf信令面负载均衡选择方法及*** | |
CN112671554A (zh) | 一种节点故障处理方法及相关装置 | |
CN111431959B (zh) | 一种基于发布订阅***机制的服务负载均衡方法及装置 | |
CN108882262A (zh) | 设备状态同步方法、***、智能终端及可读存储介质 | |
CN112491951B (zh) | 对等网络中的请求处理方法、服务器及存储介质 | |
US20110072152A1 (en) | Apparatus and method for receiving data | |
CN108234631B (zh) | 消息推送平台和消息推送方法 | |
CN114598701B (zh) | Cdn调度方法、***、计算设备及存储介质 | |
WO2008037174A1 (fr) | Procédé, dispositif et système de communication correspondant de sélection de maître local | |
US8051129B2 (en) | Arrangement and method for reducing required memory usage between communication servers | |
CN112925946B (zh) | 一种业务数据存储方法、装置及电子设备 | |
CN110661836A (zh) | 消息路由方法、装置及***、存储介质 | |
CN113098914B (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 |