CN106385375A - 用于消息队列的负载均衡方法和装置 - Google Patents
用于消息队列的负载均衡方法和装置 Download PDFInfo
- Publication number
- CN106385375A CN106385375A CN201510464077.9A CN201510464077A CN106385375A CN 106385375 A CN106385375 A CN 106385375A CN 201510464077 A CN201510464077 A CN 201510464077A CN 106385375 A CN106385375 A CN 106385375A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- proportionate relationship
- sent
- destination 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于消息队列的负载均衡方法和装置。该方法包括:分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量;根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器;以及将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息。通过本发明,解决了消息队列的负载均衡效果较差的问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种用于消息队列的负载均衡方法和装置。
背景技术
消息队列是保存消息的容器,在互联网应用中发挥着重要的作用。例如,在网络爬虫的应用领域,由于通常需要爬取大量的网页,因此往往利用消息队列进行分布式爬取,其中,消息队列采用分布式方式,部署在多台服务器中。
在消息队列部署在多台服务器的情况下,一般由于机器的性能、网速等因素,很可能会发生消息的生产和消费不均衡的问题,也即难以保证消息队列的负载均衡。例如,服务器A的性能较高,并且网速非常快,而服务器B的性能较低,网速较慢,当爬虫以同样的频率发送消息时,会造成服务器A能够轻松地消费掉消息,而服务器B则会积压大量的消息,造成服务器B崩溃,进而影响整个系统的正常运行。
目前,为了实现消息队列的负载均衡,通常是根据服务器性能将消息按比例分配至多台服务器。但是,由于通常情况下网速是实时变化的,在网速较差时,服务器对消息的消费速度降低;在网速较好时,服务器对消息的消费速度提升。因此,如果仅仅依据服务器的性能对消息进行分配,则很容易造成各个服务器中消息生产和消费不均衡。
针对相关技术中消息队列的负载均衡效果较差的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于消息队列的负载均衡方法和装置,以解决消息队列的负载均衡效果较差的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于消息队列的负载均衡方法。
根据本发明的用于消息队列的负载均衡方法包括:分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量;根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器;以及将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息。
进一步地,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器包括:获取第一比例关系,其中,第一比例关系为多个消息处理参数之间的比例关系;获取第二比例关系,其中,第二比例关系为多个消息量之间的比例关系;以及根据第一比例关系和第二比例关系确定至少一个目标服务器。
进一步地,将第一待发送消息发送至至少一个目标服务器包括:在第一时刻将第一待发送消息发送至至少一个目标服务器;在将第一待发送消息发送至至少一个目标服务器之后,该方法还包括:检测在第一时刻之后的预设时间间隔内是否产生第二待发送消息;以及如果检测到在第一时刻之后的预设时间间隔内产生第二待发送消息,则将第二待发送消息发送至至少一个目标服务器。
进一步地,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器包括:根据多个消息处理参数和多个消息量确定第三比例关系,其中,第三比例关系为多个服务器的负载率之间的比例关系,负载率为服务器的消息量与消息处理参数的比值;根据第三比例关系确定多个服务器中负载率最小的服务器;以及确定负载率最小的服务器为至少一个目标服务器。
进一步地,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器包括:根据多个消息处理参数和多个消息量确定第三比例关系,其中,第三比例关系为多个服务器的负载率之间的比例关系,负载率为服务器的消息量与消息处理参数的比值;分别确定多个服务器的负载率比例,其中,负载率比例为每个服务器的负载率占多个服务器的总负载率的比例;确定目标负载率比例,其中,目标负载率比例为负载率比例中低于预设负载率比例的负载率比例;以及确定目标负载率比例对应的服务器为至少一个目标服务器。
进一步地,至少一个目标服务器为多个目标服务器,至少一个待发送消息为多个待发送消息,在将第一待发送消息发送至至少一个目标服务器之前,该方法还包括:确定第四比例关系和第五比例关系,其中,第四比例关系为多个目标服务器的消息量之间的比例关系,第五比例关系为多个目标服务器的消息处理参数之间的比例关系;以及根据第四比例关系和第五比例关系确定第六比例关系,其中,第六比例关系为向多个目标服务器发送多个第一待发送消息的比例关系;将第一待发送消息发送至至少一个目标服务器包括:按照第六比例关系将第一待发送消息发送至多个目标服务器。
进一步地,该方法还包括:消息中心服务器产生或者接收待发送消息。
进一步地,在将第一待发送消息发送至至少一个目标服务器之前,该方法还包括:分别获取多个服务器的地址;分别根据多个服务器的地址在消息中心服务器和多个服务器之间建立连接;从多个服务器中确定至少一个目标服务器之后,该方法还包括:确定目标服务器地址,其中,目标服务器地址为至少一个目标服务器的地址,将第一待发送消息发送至至少一个目标服务器包括:根据目标服务器地址,以及根据消息中心服务器与至少一个目标服务器之间建立的连接,将第一待发送消息发送至至少一个目标服务器。
为了实现上述目的,根据本发明的另一方面,提供了一种用于消息队列的负载均衡装置。
根据本发明的用于消息队列的负载均衡装置包括:第一确定单元,用于分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;第二确定单元,用于分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量;第三确定单元,用于根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器;以及发送单元,用于将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息。
进一步地,第三确定单元包括:第一获取模块,用于获取第一比例关系,其中,第一比例关系为多个消息处理参数之间的比例关系;第二获取模块,用于获取第二比例关系,其中,第二比例关系为多个消息量之间的比例关系;以及确定模块,用于根据第一比例关系和第二比例关系确定至少一个目标服务器。
通过本发明,采用包括以下步骤的方法:分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量;根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器;以及将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息,解决了消息队列的负载均衡效果较差的问题,进而根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器,并且将第一待发送消息发送至至少一个目标服务器,提高了消息队列的负载均衡效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明第一实施例的用于消息队列的负载均衡方法的流程图;
图2是根据本发明第二实施例的用于消息队列的负载均衡方法的流程图;以及
图3是根据本发明实施例的用于消息队列的负载均衡装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面根据本发明的实施例,提供了一种用于消息队列的负载均衡方法。
图1是根据本发明第一实施例的用于消息队列的负载均衡方法的流程图。如图1所示,该方法包括如下的步骤:
步骤S102,分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数。
在该步骤中,消息处理参数是标识服务器的消息处理能力的参数,消息处理能力即服务器的性能,包括服务器的消息存储能力、数据处理能力等。例如,消息处理参数可以为服务器的内存大小、中央处理器(CPU)的处理能力等。该步骤中,可以分别确定各个服务器的内存的大小。
步骤S104,分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量。
在每个服务器中,进入到该服务器的消息以队列结构存储。每个服务器中消息队列的消息数量的变化情况用于表征该服务器中消息队列的负载均衡情况。因此,将服务器的消息队列中包含的消息数量作为本发明实施例的一个参考因素,有利于提高消息队列的负载均衡效果。
步骤S106,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器。
该步骤中,目标服务器为用于接收生产者生产的消息并且将消息进一步消费掉的服务器。例如,在爬虫应用领域中,目标服务器接收爬取消息,按照爬取消息爬取相应的网站。需要说明的是,该步骤中的目标服务器可以是一台服务器,也可以是多台服务器。
对于服务器而言,其处理消息的速度与服务器性能(消息处理参数)密切相关,往往服务器的性能越高,其处理消息的速度越快;服务器性能越低,其处理消息的速度越慢。因此,本实施例将服务器的消息处理参数作为确定目标服务器的一个参考因素。另外,如前所述,服务器的消息队列中包含的消息数量也在一定程度上影响着服务器消息队列的负载均衡。因此,综合考虑多个消息处理参数和多个消息量,进而确定用于接收消息的目标服务器,可以在很大程度上提高消息队列的负载均衡效果。
例如,对于服务器性能较差(例如,CPU的处理能力较差),并且该服务器中消息队列包含的消息数量相对较大的服务器,暂时不予发送消息;而对于服务器性能较好(例如,CPU的处理能力较好),并且该服务器中消息队列包含的消息数量相对较小的服务器,将其确定为目标服务器,并将待发送的消息发送至该服务器。
步骤S108,将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息。
对于该步骤,需要说明的是,第一待发送消息可以是单条消息,也可以是多条消息,目标服务器可以是单台服务器,也可以是多台服务器(对应多条消息的情况)。例如,对于上述执行过程采用单线程的情况,第一待发送消息为单条消息,对应的目标服务器为单台服务器;对于执行过程采用多线程的情况,第一待发送消息为多条消息,对应的目标服务器可以为单台服务器或者多台服务器。
根据本发明的用于消息队列的负载均衡方法,由于包括:分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量;根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器;以及将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息,解决了消息队列的负载均衡效果较差的问题,进而根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器,并且将第一待发送消息发送至至少一个目标服务器,提高了消息队列的负载均衡效果。
在一个优选的实施例中,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器可以包括如下的步骤:获取第一比例关系,其中,第一比例关系为多个消息处理参数之间的比例关系;获取第二比例关系,其中,第二比例关系为多个消息量之间的比例关系;以及根据第一比例关系和第二比例关系确定至少一个目标服务器。
在该实施例中,为了根据消息处理参数和消息量确定目标服务器能够更加简单地执行,可以获取多个消息处理参数之间的比例关系(第一比例关系),以及多个消息量之间的比例关系(第二比例关系)。根据第一比例关系和第二比例关系可以快速地确定目标服务器,执行效率更高。
例如,三台服务器A、B、C,服务器A的内存为8G,服务器B的内存为4G,服务器C的内存为4G,则可获知第一比例关系为2:1:1。假设检测出服务器A、服务器B和服务器C中消息队列包含的消息数量分别为80、10和10,可得第二比例关系为8:1:1。根据第一比例关系和第二比例关系可以获知:服务器A相对于服务器B和服务器C来说,其对消息队列中消息的处理情况更差。比如,服务器A的内存仅为服务器B的2倍,但是其消息队列中包含的消息的数量却是服务器B的8倍。而服务器B和服务器C的内存大小相同,并且消息队列中包含的消息数量也相同,因此可以将服务器B或者服务器C作为目标服务器,用于接收第一待发送消息。
在一个可选的实施例中,将第一待发送消息发送至至少一个目标服务器包括:在第一时刻将第一待发送消息发送至目标服务器;在将第一待发送消息发送至至少一个目标服务器之后,该方法还包括:检测在第一时刻之后的预设时间间隔内是否产生第二待发送消息;以及如果检测到在第一时刻之后的预设时间间隔内产生第二待发送消息,则将第二待发送消息发送至至少一个目标服务器。
在该实施例中,每当确定一次多个消息处理参数和多个消息量(也即,确定了一个目标服务器),则在此之后的预设时间段内,均将待发送的消息发送至该目标服务器。由于很多时候,待发送的消息量是巨大的,例如,在爬虫应用领域,往往需要爬取大量的网站,也即有大量的消息需要发送至服务器。因此设定每间隔预设时间间隔确定当前每台服务器的消息量,以对先前获取的消息量进行更新,不仅保证了消息量的真实有效性,并且提高了消息的分发速度。
在一个可选的实施例中,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器包括:根据多个消息处理参数和多个消息量确定第三比例关系,其中,第三比例关系为多个服务器的负载率之间的比例关系,负载率为服务器的消息量与消息处理参数的比值;根据第三比例关系确定多个服务器中负载率最小的服务器;以及确定负载率最小的服务器为至少一个目标服务器。
在该实施例中,负载率为服务器的消息量和消息处理参数的比值,该值用于标识服务器中消息队列的负载比重。负载率越大,则该服务器进行消息处理的负担越重,该值越小,则服务器进行消息处理的负担越小。第三比例关系为多个服务器的负载率之间的比例关系,对于第三比例关系的确定,可以分别计算每台服务器的负载率,再确定多台服务器的负载率之间的比例关系;另外,也可以首先分别确定多台服务器的消息量之间的比例关系和消息处理参数之间的比例关系,再根据消息量之间的比例关系和消息处理参数之间的比例关系确定多台服务器的负载率之间的比例关系。本发明不对具体的计算步骤进行限定。
优选地,根据多个消息处理参数和多个消息量确定第三比例关系包括:根据第一比例关系和第二比例关系确定第三比例关系,第一比例关系为多个消息处理参数之间的比例关系,第二比例关系为多个消息量之间的比例关系。进而可以根据第三比例关系确定负载率最小的服务器,也即消息处理负担最小的服务器。将待发送的消息发送至该服务器可以提升消息队列的负载均衡控制效果。
例如,三台服务器A、B、C,第一比例关系为2:1:1,第二比例关系为8:1:1。则根据第一比例关系和第二比例关系,可以计算出第三比例关系为4:1:1。可见,服务器A的负载率最大,服务器B和服务器C的负载率相同,因此,可以将服务器B或者服务器C作为目标服务器。
在一个可选的实施例中,根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器包括:根据多个消息处理参数和多个消息量确定第三比例关系,其中,第三比例关系为多个服务器的负载率之间的比例关系,负载率为服务器的消息量与消息处理参数的比值;分别确定多个服务器的负载率比例,其中,负载率比例为每个服务器的负载率占多个服务器的总负载率的比例;确定目标负载率比例,其中,目标负载率比例为负载率比例中低于预设负载率比例的负载率比例;以及确定目标负载率比例对应的服务器为至少一个目标服务器。同样地,不发明不对确定第三比例关系的具体步骤进行限定。优选地,根据多个消息处理参数和多个消息量确定第三比例关系包括:根据第一比例关系和第二比例关系确定第三比例关系,第一比例关系为多个消息处理参数之间的比例关系,第二比例关系为多个消息量之间的比例关系。
由于该实施例中第三比例关系与上述实施例中相同,这里不再赘述。负载率比例为每个服务器的负载率占多个服务器的总负载率的比例。预设负载率比例为一个预先设定的参考值,可以为经验参数。例如,三台服务器A、B、C,第三比例关系为4:1:1,则服务器A的负载率比例为4/6,服务器B的负载率比例为1/6,服务器C的负载率比例为1/6。假设预设负载率比例为1/2,则可以确定服务器B和服务器C为目标服务器。
在上述实施例中,至少一个目标服务器为多个目标服务器,至少一个待发送消息为多个待发送消息,在将第一待发送消息发送至至少一个目标服务器之前,该方法还可以包括:确定第四比例关系和第五比例关系,其中,第四比例关系为多个目标服务器的消息量之间的比例关系,第五比例关系为多个目标服务器的消息处理参数之间的比例关系;以及根据第四比例关系和第五比例关系确定第六比例关系,其中,第六比例关系为向多个目标服务器发送第一待发送消息的比例关系;将第一待发送消息发送至至少一个目标服务器包括:按照第六比例关系将多个第一待发送消息发送至多个目标服务器。
例如,三台服务器A、B、C,第一比例关系为2:1:1,第二比例关系为8:1:1,根据第一比例关系和第二比例关系确定的第三比例关系为4:1:1。假设预设负载率比例为1/2,则确定的目标服务器为服务器B和服务器C。因此,可以获取第四比例关系为1:1,第五比例关系为1:1,得到第六比例关系为1:1(可以按照负载率进行计算)。最后,可按照1:1的比例关系将多个第一待发送消息发送至服务器B和服务器C。
在一种可选的实施例中,该方法还可以包括:消息中心服务器产生或者接收待发送消息。
在该实施例中,为了对待发送消息进行统一控制,消息中心服务器提供了一个消息队列全局入口方法,即待发送消息在进入多个服务器中的特定服务器之前,全部会经过消息中心服务器提供的消息入口队列。消息中心服务器内置配置文件,该配置文件可以记录上述多个服务器的消息处理参数和消息量等,根据消息处理参数和消息量确定目标服务器,并控制待发送消息发送至该目标服务器。
在上述实施例中,在将第一待发送消息发送至至少一个目标服务器之前,该方法还可以包括:分别获取多个服务器的地址;分别根据多个服务器的地址在消息中心服务器和多个服务器之间建立连接;从多个服务器中确定至少一个目标服务器之后,该方法还包括:确定目标服务器地址,其中,目标服务器地址为至少一个目标服务器的地址;将第一待发送消息发送至至少一个目标服务器包括:根据目标服务器地址,以及根据消息中心服务器与至少一个目标服务器之间建立的连接,将第一待发送消息发送至至少一个目标服务器。
为了保证消息中心服务器能够高效地将待发送的消息发送至目标服务器,在将第一待发送消息发送至目标服务器之前,会首先在消息中心服务器和多个服务器之间建立连接,在消息中心服务器确定目标服务器之后,直接将待发送的消息发送至目标服务器地址对应的服务器。
图2是根据本发明第二实施例的用于消息队列的负载均衡方法的流程图。该实施例可以作为图1所示实施例的一种优选的实施方式。如图2所示,该方法包括如下的步骤:
为了对本实施例进行形象的说明,下面介绍一个可与本实施例相类比的生活中存在的场景:在一个超市中有很多收款台,通常顾客不能看到全部收款台的情况,这样往往造成收款台结帐人数不均匀,即有的收款台排队较长,而有的收款台却无人排队。这时可设置一个大的液晶屏用来显示收款台的人数,或者实时广播收款台的人数,从而可以指引客户到人少的收款台付款。下面对本实施例的具体实施步骤进行介绍:
步骤S202,建立消息队列中心的全局配置文件,其中,全局配置文件包括节点服务器信息。
消息队列中心用于对所有待发送的消息进行统一的控制。全局配置文件用于记录节点服务器信息,其中,节点服务器信息包括节点服务器的地址及每个节点服务器的性能参数。比如,三个节点服务器,分别是服务器A、B、C,内存分别为8G、4G、16G。同时,该配置文件提供了一个消息队列全局入口方法,所有进入目标服务器的消息都将首先进入该入口(中心队列入口)。
需要说明的是,该实施例中的节点服务器信息包括图1所示实施例中的消息处理参数,也即该实施例中的性能参数。
步骤S204,根据节点服务器信息与节点服务器建立连接。
根据节点服务器信息中包含的节点服务器地址,建立消息队列中心与节点服务器之间的连接。
步骤S206,每间隔预设时间间隔检测各个节点服务器中消息队列的消息个数,并进行更新。
在消息队列中心与各个服务器建立连接之后,根据配置文件预先设置的时间间隔,动态的获取各个节点服务器的消息队列中的消息个数。经过预设时间间隔之后,重新获取各个节点服务器的消息队列中的消息个数,并对之前获取的消息个数进行更新。
步骤S208,根据节点服务器的性能参数比例关系以及各个节点服务器中消息队列的消息个数获取各个节点服务器的负载百分比。
在消息队列中心的全局入口页进行逻辑判断,根据节点服务器的性能比例及动态获取的消息队列中的消息个数确定将消息分配至哪一个节点服务器。这里的负载百分比同于图1所示实施例中的负载率比例,即每个节点服务器的负载率占所有节点服务器的总负载率的比例,负载率为节点服务器的消息队列中消息的个数与该节点服务器的性能参数的比值。
步骤S210,根据负载百分比确定目标节点服务器,其中,从中心队列入口进入的消息发送至目标节点服务器。
根据该实施例的用于消息队列的负载均衡方法,由于包括上述的步骤S202至步骤S210,解决了对消息队列的负载均衡控制效果较差的问题,进而通过引入消息队列中心的方式,由消息队列中心对消息进行实时的调度分配,消息队列中心可以与所有的节点服务器进行通信,从而获取各节点服务器的消息队列中的消息个数,进而根据存储的每个节点服务器的性能参数以及消息个数确定目标服务器,从而将从中心队列入口进入的消息发送至最合适的服务器,大幅提升了消息队列的负载均衡效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
下面根据本发明的实施例,提供了一种用于消息队列的负载均衡装置。
需要说明的是,根据本发明实施例的用于消息队列的负载均衡装置可以用于执行根据本发明实施例的用于消息队列的负载均衡方法,根据本发明实施例的用于消息队列的负载均衡方法也可以通过根据本发明实施例的用于消息队列的负载均衡装置来执行。
图3是根据本发明实施例的用于消息队列的负载均衡装置的示意图。如图3所示,该装置包括:第一确定单元20、第二确定单元40、第三确定单元60和发送单元80。
第一确定单元20,用于分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数。
第二确定单元40,用于分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量。
第三确定单元60,用于根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器。
发送单元80,用于将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息。
根据本实施例的用于消息队列的负载均衡装置,由于包括:第一确定单元20,用于分别确定多个消息处理参数,其中,多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;第二确定单元40,用于分别确定多个消息量,其中,多个消息量分别为多个服务器中的消息队列包含的消息的数量;第三确定单元60,用于根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器;以及发送单元80,用于将第一待发送消息发送至至少一个目标服务器,其中,第一待发送消息包括至少一个待发送消息,解决了消息队列的负载均衡效果较差的问题,进而第三确定单元60根据多个消息处理参数和多个消息量从多个服务器中确定至少一个目标服务器,并且发送单元80将第一待发送消息发送至至少一个目标服务器,提高了消息队列的负载均衡效果。
在一种可选的实施例中,第三确定单元60包括:第一获取模块,用于获取第一比例关系,其中,第一比例关系为多个消息处理参数之间的比例关系;第二获取模块,用于获取第二比例关系,其中,第二比例关系为多个消息量之间的比例关系;以及确定模块,用于根据第一比例关系和第二比例关系确定至少一个目标服务器。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用于消息队列的负载均衡方法,其特征在于,包括:
分别确定多个消息处理参数,其中,所述多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;
分别确定多个消息量,其中,所述多个消息量分别为所述多个服务器中的消息队列包含的消息的数量;
根据所述多个消息处理参数和所述多个消息量从所述多个服务器中确定至少一个目标服务器;以及
将第一待发送消息发送至所述至少一个目标服务器,其中,所述第一待发送消息包括至少一个待发送消息。
2.根据权利要求1所述的方法,其特征在于,根据所述多个消息处理参数和所述多个消息量从所述多个服务器中确定至少一个目标服务器包括:
获取第一比例关系,其中,所述第一比例关系为所述多个消息处理参数之间的比例关系;
获取第二比例关系,其中,所述第二比例关系为所述多个消息量之间的比例关系;以及
根据所述第一比例关系和所述第二比例关系确定所述至少一个目标服务器。
3.根据权利要求2所述的方法,其特征在于,
将第一待发送消息发送至所述至少一个目标服务器包括:在第一时刻将所述第一待发送消息发送至所述至少一个目标服务器;
在将所述第一待发送消息发送至所述至少一个目标服务器之后,所述方法还包括:检测在所述第一时刻之后的预设时间间隔内是否产生第二待发送消息;以及如果检测到在所述第一时刻之后的预设时间间隔内产生所述第二待发送消息,则将所述第二待发送消息发送至所述至少一个目标服务器。
4.根据权利要求1所述的方法,其特征在于,根据所述多个消息处理参数和所述多个消息量从所述多个服务器中确定至少一个目标服务器包括:
根据所述多个消息处理参数和所述多个消息量确定第三比例关系,其中,所述第三比例关系为所述多个服务器的负载率之间的比例关系,所述负载率为服务器的消息量与消息处理参数的比值;
根据所述第三比例关系确定所述多个服务器中负载率最小的服务器;以及
确定所述负载率最小的服务器为所述至少一个目标服务器。
5.根据权利要求1所述的方法,其特征在于,根据所述多个消息处理参数和所述多个消息量从所述多个服务器中确定至少一个目标服务器包括:
根据所述多个消息处理参数和所述多个消息量确定第三比例关系,其中,所述第三比例关系为所述多个服务器的负载率之间的比例关系,所述负载率为服务器的消息量与消息处理参数的比值;
分别确定所述多个服务器的负载率比例,其中,所述负载率比例为每个服务器的负载率占所述多个服务器的总负载率的比例;
确定目标负载率比例,其中,所述目标负载率比例为所述负载率比例中低于预设负载率比例的负载率比例;以及
确定所述目标负载率比例对应的服务器为所述至少一个目标服务器。
6.根据权利要求5所述的方法,其特征在于,所述至少一个目标服务器为多个目标服务器,所述至少一个待发送消息为多个待发送消息,
在将第一待发送消息发送至所述至少一个目标服务器之前,所述方法还包括:确定第四比例关系和第五比例关系,其中,所述第四比例关系为所述多个目标服务器的消息量之间的比例关系,所述第五比例关系为所述多个目标服务器的消息处理参数之间的比例关系;以及根据所述第四比例关系和所述第五比例关系确定第六比例关系,其中,所述第六比例关系为向所述多个目标服务器发送所述第一待发送消息的比例关系;
将第一待发送消息发送至所述至少一个目标服务器包括:按照所述第六比例关系将所述第一待发送消息发送至所述多个目标服务器。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
消息中心服务器产生或者接收所述待发送消息。
8.根据权利要求7所述的方法,其特征在于,
在将第一待发送消息发送至所述至少一个目标服务器之前,所述方法还包括:分别获取所述多个服务器的地址;分别根据所述多个服务器的地址在所述消息中心服务器和所述多个服务器之间建立连接;
从所述多个服务器中确定至少一个目标服务器之后,所述方法还包括:确定目标服务器地址,其中,所述目标服务器地址为所述至少一个目标服务器的地址;
将第一待发送消息发送至所述至少一个目标服务器包括:根据所述目标服务器地址,以及根据所述消息中心服务器与所述至少一个目标服务器之间建立的连接,将所述第一待发送消息发送至所述至少一个目标服务器。
9.一种用于消息队列的负载均衡装置,其特征在于,包括:
第一确定单元,用于分别确定多个消息处理参数,其中,所述多个消息处理参数分别为用于标识多个服务器的消息处理能力的参数;
第二确定单元,用于分别确定多个消息量,其中,所述多个消息量分别为所述多个服务器中的消息队列包含的消息的数量;
第三确定单元,用于根据所述多个消息处理参数和所述多个消息量从所述多个服务器中确定至少一个目标服务器;以及
发送单元,用于将第一待发送消息发送至所述至少一个目标服务器,其中,所述第一待发送消息包括至少一个待发送消息。
10.根据权利要求9所述的装置,其特征在于,所述第三确定单元包括:
第一获取模块,用于获取第一比例关系,其中,所述第一比例关系为所述多个消息处理参数之间的比例关系;
第二获取模块,用于获取第二比例关系,其中,所述第二比例关系为所述多个消息量之间的比例关系;以及
确定模块,用于根据所述第一比例关系和所述第二比例关系确定所述至少一个目标服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510464077.9A CN106385375B (zh) | 2015-07-31 | 2015-07-31 | 用于消息队列的负载均衡方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510464077.9A CN106385375B (zh) | 2015-07-31 | 2015-07-31 | 用于消息队列的负载均衡方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106385375A true CN106385375A (zh) | 2017-02-08 |
CN106385375B CN106385375B (zh) | 2019-12-03 |
Family
ID=57916258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510464077.9A Active CN106385375B (zh) | 2015-07-31 | 2015-07-31 | 用于消息队列的负载均衡方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106385375B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066530A (zh) * | 2017-03-01 | 2017-08-18 | 苏州朗动网络科技有限公司 | 一种数据刷新系统及数据刷新方法 |
CN107580033A (zh) * | 2017-08-24 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 负载信息处理方法和装置、消息处理方法和装置、服务器 |
CN108848039A (zh) * | 2018-04-24 | 2018-11-20 | 平安科技(深圳)有限公司 | 服务器、消息分配的方法及存储介质 |
CN111586434A (zh) * | 2020-05-06 | 2020-08-25 | 北京三体云时代科技有限公司 | 基于边缘设备的负载均衡的方法及分布式混屏服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534244A (zh) * | 2009-02-09 | 2009-09-16 | 华为技术有限公司 | 负载分发方法、装置和系统 |
CN102316133A (zh) * | 2010-07-01 | 2012-01-11 | 中国移动通信集团上海有限公司 | 一种负载均衡方法及装置 |
CN102523158A (zh) * | 2011-12-15 | 2012-06-27 | 杭州电子科技大学 | 一种基于权重的元数据服务器集群负载均衡方法 |
CN102882959A (zh) * | 2012-09-21 | 2013-01-16 | 国电南瑞科技股份有限公司 | 一种电力调度系统中web服务器的负载均衡机制 |
CN104270402A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种异构集群存储自适应数据负载的方法 |
CN104270321A (zh) * | 2014-09-18 | 2015-01-07 | 苏州阔地网络科技有限公司 | 一种网络负载均衡方法及系统 |
-
2015
- 2015-07-31 CN CN201510464077.9A patent/CN106385375B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534244A (zh) * | 2009-02-09 | 2009-09-16 | 华为技术有限公司 | 负载分发方法、装置和系统 |
CN102316133A (zh) * | 2010-07-01 | 2012-01-11 | 中国移动通信集团上海有限公司 | 一种负载均衡方法及装置 |
CN102523158A (zh) * | 2011-12-15 | 2012-06-27 | 杭州电子科技大学 | 一种基于权重的元数据服务器集群负载均衡方法 |
CN102882959A (zh) * | 2012-09-21 | 2013-01-16 | 国电南瑞科技股份有限公司 | 一种电力调度系统中web服务器的负载均衡机制 |
CN104270402A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种异构集群存储自适应数据负载的方法 |
CN104270321A (zh) * | 2014-09-18 | 2015-01-07 | 苏州阔地网络科技有限公司 | 一种网络负载均衡方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066530A (zh) * | 2017-03-01 | 2017-08-18 | 苏州朗动网络科技有限公司 | 一种数据刷新系统及数据刷新方法 |
CN107580033A (zh) * | 2017-08-24 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 负载信息处理方法和装置、消息处理方法和装置、服务器 |
CN107580033B (zh) * | 2017-08-24 | 2020-12-25 | 创新先进技术有限公司 | 负载信息处理方法和装置、消息处理方法和装置、服务器 |
CN108848039A (zh) * | 2018-04-24 | 2018-11-20 | 平安科技(深圳)有限公司 | 服务器、消息分配的方法及存储介质 |
WO2019205371A1 (zh) * | 2018-04-24 | 2019-10-31 | 平安科技(深圳)有限公司 | 服务器、消息分配的方法及存储介质 |
CN108848039B (zh) * | 2018-04-24 | 2021-11-02 | 平安科技(深圳)有限公司 | 服务器、消息分配的方法及存储介质 |
CN111586434A (zh) * | 2020-05-06 | 2020-08-25 | 北京三体云时代科技有限公司 | 基于边缘设备的负载均衡的方法及分布式混屏服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN106385375B (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10855545B2 (en) | Centralized resource usage visualization service for large-scale network topologies | |
US9479358B2 (en) | Managing graphics load balancing strategies | |
US9647904B2 (en) | Customer-directed networking limits in distributed systems | |
CN110209496A (zh) | 基于数据处理的任务分片方法、装置及分片服务器 | |
CN104901898B (zh) | 一种负载均衡方法及装置 | |
CN106385375A (zh) | 用于消息队列的负载均衡方法和装置 | |
CN107729139A (zh) | 一种并发获取资源的方法和装置 | |
CN110290178A (zh) | 一种数据流的调度方法、电子设备及存储介质 | |
KR20160065923A (ko) | 클러스터링에 기반한 매핑과 라우팅을 위한 시스템 및 방법 | |
CN107872402A (zh) | 全局流量调度的方法、装置及电子设备 | |
CN106533978B (zh) | 一种网络负载均衡方法及系统 | |
CN103428008A (zh) | 面向多用户群的大数据分发策略 | |
CN105450668A (zh) | 云安全服务实现系统和云安全服务实现方法 | |
CN106844397A (zh) | 基于分库分表的任务传输方法、装置及系统 | |
CN106716937A (zh) | 路径计算和访问请求分发方法、装置及系统 | |
CN110493043B (zh) | 一种分布式态势感知调用方法和装置 | |
CN106059940B (zh) | 一种流量控制方法及装置 | |
CN110020046A (zh) | 一种数据抓取方法及装置 | |
CN105515884B (zh) | 一种统计流量的方法和装置 | |
CN106791639A (zh) | 大规模数据并发环境下的视频监控方法及系统 | |
Lohitha et al. | Integrated publish/subscribe and push-pull method for cloud based IoT framework for real time data processing | |
CN105471770B (zh) | 一种基于多核处理器的报文处理方法及装置 | |
CN110311838A (zh) | 一种安全服务流量统计的方法及装置 | |
CN106385381B (zh) | 一种匹配计算的资源调度分配方法及其系统 | |
CN104182546B (zh) | 数据库的数据查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |