专利名称:基于近似匹配的发布/订阅负载均衡方法
技术领域:
本发明涉及网络领域,尤其涉及一种基于近似匹配的分布式发布/订阅负载均衡方法。
背景技术:
发布/订阅系统技术具有良好的应用前景。早期的基于主题的发布/订阅系统已有很多成熟的产品广泛应用于银行、证券、制造业企业信息化等各个领域,较有影响的应用案例包括NASDAQ证券交易系统、费城股票交易所业务系统等。面向大規模分布式计算的基于内容的发布/订阅系统,可以预见的应用场景包括各类电子商务系统(网上拍卖系统、网上交易市场)、企业应用集成(EAI)、基于事件的供应链管理(ESCM)、电子新闻分发、在线网络游戏和大规模环境监测等。目前,大部分发布/订阅系统主要采用精确匹配的方法,该方法可以最小化网络带宽的使用,但存在着明显的缺点当系统的规模很大时,一些处于关键位置的代理结点会出现负载过重,而另外一些位于边界的代理结点负载过轻,出现负载不均衡现象。
发明内容
本发明的目的在于提供一种基于近似匹配的发布/订阅负载均衡方法,以解决现有技术中发布/订阅系统存在容易出现负载不均衡的技术问题。为达到上述目的,本发明的目的在于提供一种基于近似匹配的发布/订阅负载均衡方法,包括以下步骤(I)用户将订阅要求发送到边界代理结点,边界代理结点将其转发给它所连接的中间代理结点;(2)某个边界代理结点收到事件后,先确定事件是否满足本地用户的订阅条件,如果满足,由该边界代理结点将事件传送到所有满足条件的本地用户,然后检查事件是否满足远程用户的订阅条件,如果满足,通过邻居代理结点进行转发。(3)在负载过重的中间代理结点上采用近似匹配的方法,实现可控的负载均衡,把匹配任务从负载过重的中间代理结点转移到负载较轻的边界代理结点上。依照本发明较佳实施例所述的基于近似匹配的发布/订阅负载均衡方法,步骤三具体包括(31)根据每个中间代理结点的处理能力和当前结点接收到的事件个数判断各个结点是否处于负载过重状态;(32)若某个或多个中间代理结点处于负载过重状态,则根据其邻居代理结点的负载能力和当前接收到的事件个数,计算出各邻居代理结点的空余处理能力;(33)根据邻居代理结点的负载情况,调整负载过重的中间代理结点的近似匹配精度,采用快速的近似匹配方法,将精度匹配的任务传递给下ー跳负载较轻的邻居代理节点。依照本发明较佳实施例所述的基于近似匹配的发布/订阅负载均衡方法,步骤(31)中的结点处理能力为单位时间内结点能够处理的事件个数。依照本发明较佳实施例所述的基于近似匹配的发布/订阅负载均衡方法,步骤
(31)具体为将结点単位时间内接收到的事件个数与结点的处理能力相比较,若単位时间内接收到的事件的个数大于结点的处理能力,则该结点处于负载过重状态。本发明实时对系统中各中间代理结点的负载情况进行计算,当其接收到的事件个数大于其处理能力时,根据其邻居结点的负载能力和当前接收到的事件个数,计算出它们的空余处理能力,从而调整中间代理结点的近似匹配精度,加快中间代理结点的事件处理速度,让待处理事件快速通过中间代理结点,并将精度匹配的任务传递给下ー跳负载较轻的结点,从而实现结点间的负载均衡,提高系统的整体性能。 综上所述,本发明能够实时计算系统中各中间代理结点的负载情况,计算出轻载结点的剰余工作能力,并利用可控的近似匹配方法,实现精确的负载均衡,提高整个系统的呑吐量和減少事件传送的延迟时间。因此,与现有技术相比,本发明有效解决了现有发布/订阅系统存在的容易出现负载不均衡的技术问题,具有处理效率高、性能稳定的优点。
图I为本发明基于近似匹配的发布/订阅负载均衡方法的流程原理图;图2为应用本发明基于近似匹配的发布/订阅负载均衡方法的网络系统结构示意图;图3为本发明实施例的近似匹配索引结构图。
具体实施例方式以下结合附图,具体说明本发明。请參阅图1,一种基于近似匹配的发布/订阅负载均衡方法,包括以下步骤Sll :用户将订阅要求发送到边界代理结点,边界代理结点将其转发给它所连接的中间代理结点。S12:某个边界代理结点收到事件后,先确定事件是否满足本地用户的订阅条件,如果满足,由该边界代理结点将事件传送到所有满足条件的本地用户,然后检查事件是否满足远程用户的订阅条件,如果满足,通过邻居代理结点进行转发。S13 :在负载过重的中间代理结点上采用近似匹配的方法,实现可控的负载均衡,把匹配任务从负载过重的中间代理结点转移到负载较轻的边界代理结点上。该步骤具体包括S131 :根据每个中间代理结点的处理能力和当前结点接收到的事件个数判断各个结点是否处于负载过重状态.一个结点的处理能力可表示为单位时间内结点能够处理的事件个数,将结点単位时间内接收到的事件个数与结点的处理能力相比较,若单位时间内接收到的事件的个数大于结点的处理能力,则该结点处于负载过重状态。S132:若某个或多个中间代理结点处于负载过重状态,则根据其邻居代理结点的负载能力和当前接收到的事件个数,计算出各邻居代理结点的空余处理能力。S133 :根据邻居代理结点的负载情况,调整负载过重的中间代理结点的近似匹配精度,采用快速的近似匹配方法,将精度匹配的任务传递给下ー跳负载较轻的邻居代理节点。请再參阅图2,其为本发明基于近似匹配的发布/订阅负载均衡方法的网络系统结构示意图。以下结合图2对本发明的基于近似匹配的发布/订阅负载均衡方法进行详细说明。
如图2所示,应用本发明基于近似匹配的发布/订阅负载均衡方法的网络系统由用户(Client)、边界代理(Border Broker)和中间代理(Internal Broker)组成。用户将订阅要求发送到边界代理,边界代理将其转发给它所连接的中间代理。当边界代理收到事件后,先确定事件是否满足本地用户的订阅条件,如果满足,由该边界代理将事件传送到所有满足条件的用户。然后检查事件是否满足远程用户的订阅条件,如果满足,通过邻居代理进行转发。例如,如图2所示,当B1收到ー个事件后,首先判断是否满足与其直接相连的本地用户的订阅要求,如果满足,由B1进行转发。B1还接收到远程用户的订阅要求,如经由I1转发而来的订阅要求,所以B1还要判断事件是否与这些远程用户的订阅要求匹配,如果匹配BI要将事件转发给I1,再由I1进行下一歩的转发。当系统规模比较大时,处于中间位置的内部中间代理结点进行匹配操作的事件数量非常大,导致结点间负载不均衡,一些结点容易成为性能瓶颈。一个结点的处理能力可能表示为单位时间内能够处理的事件个数,当単位时间内接收到的事件个数大于其处理能力时,该结点就处于负载过重情况,有一些事件需要等待进行处理,结点容易成为整个系统的性能瓶颈。本系统提出了一种负载均衡机制,当某个中间代理结点或多个中间代理结点处于负载过重时,根据其邻居结点(即相邻的边界代理结点)的负载情况,采用快速的近似匹配方法,加快负载过重结点的事件处理能力,减轻其拥堵程度,从而提高系统的整体性能。例如,如图2中处于枢纽位置的Il结点,当其接收到的事件个数大于其处理能力时,根据其邻居结点BI、B2、12、13的负载能力和当前接收到的事件个数,计算出它们的空余处理能力,从而调整Il的近似匹配精度,加快Il的事件处理速度,让待处理事件快速通过II,并将精度匹配的任务传递给下ー跳负载较轻的结点,从而实验结点间的负载均衡,提高系统的整体性能。为了提高整体性能和減少事件传送的延迟时间,本发明在负载过重的中间代理结点上采用近似匹配的方法,实现可控的负载均衡,把匹配任务从负载过重的内部结点转移到负载较轻的边界结点上。近似匹配的索引结构如图3所示,每个用户的订阅条件可表示为ー个区域(图3中的虚线矩形),可用最小包含它的ー个近似区域来替代它(图3中的实线矩形),近似区域所包含的所有单元在其对应的位图(BitMap)中标志为I,表示这些单元已有用户订阅。事件对应图中的ー个点,当接收到ー个新的事件吋,检查该事件所属的単元在位图中的标志位是否为1,如果已经标志了,则该事件满足用户的订阅条件,从而对其转发或传送。本发明能够实时计算系统中各中间代理结点的负载情况,计算出轻载结点的剰余工作能力,并利用可控的近似匹配方法,实现精确的负载均衡,提高整个系统的呑吐量和减少事件传送的延迟时间。因此,与现有技术相比,本发明有效解决了现有发布/订阅系统存在的容易出现负载不均衡的技术问题,具有处理效率高、性能稳定的优点。
以上所述,仅是本发明的较佳实施实例而已,并非对本发明做任何形式上的限制,任何未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施实例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范 围。
权利要求
1.一种基于近似匹配的发布/订阅负载均衡方法,其特征在于,包括以下步骤 (1)用户将订阅要求发送到边界代理结点,边界代理结点将其转发给它所连接的中间代理结点; (2)某个边界代理结点收到事件后,先确定事件是否满足本地用户的订阅条件,如果满足,由该边界代理结点将事件传送到所有满足条件的本地用户,然后检查事件是否满足远程用户的订阅条件,如果满足,通过邻居代理结点进行转发; (3)在负载过重的中间代理结点上采用近似匹配的方法,实现可控的负载均衡,把匹配任务从负载过重的中间代理结点转移到负载较轻的边界代理结点上。
2.如权利要求I所述的基于近似匹配的发布/订阅负载均衡方法,其特征在于,步骤三具体包括 (31)根据每个中间代理结点的处理能力和当前结点接收到的事件个数判断各个结点是否处于负载过重状态; (32)若某个或多个中间代理结点处于负载过重状态,则根据其邻居代理结点的负载能力和当前接收到的事件个数,计算出各邻居代理结点的空余处理能力; (33)根据邻居代理结点的负载情况,调整负载过重的中间代理结点的近似匹配精度,采用快速的近似匹配方法,将精度匹配的任务传递给下一跳负载较轻的邻居代理节点。
3.如权利要求2所述的基于近似匹配的发布/订阅负载均衡方法,其特征在于,步骤(31)中所述的结点处理能力为单位时间内结点能够处理的事件个数。
4.如权利要求3所述的基于近似匹配的发布/订阅负载均衡方法,其特征在于,步骤(31)具体为将结点单位时间内接收到的事件个数与结点的处理能力相比较,若单位时间内接收到的事件的个数大于结点的处理能力,则该结点处于负载过重状态。
全文摘要
本发明涉及一种基于近似匹配的发布/订阅负载均衡方法,首先,用户将订阅要求发送到边界代理结点,边界代理结点将其转发给它所连接的中间代理结点;之后,某个边界代理结点收到事件后,先确定事件是否满足本地用户的订阅条件,如果满足,由该边界代理结点将事件传送到所有满足条件的本地用户,然后检查事件是否满足远程用户的订阅条件,如果满足,通过邻居代理结点进行转发。最后,在负载过重的中间代理结点上采用近似匹配的方法,实现可控的负载均衡,把匹配任务从负载过重的中间代理结点转移到负载较轻的边界代理结点上。本发明有效解决了现有发布/订阅系统存在的容易出现负载不均衡的技术问题,具有处理效率高、性能稳定的优点。
文档编号H04L29/08GK102769668SQ20121022598
公开日2012年11月7日 申请日期2012年7月2日 优先权日2012年7月2日
发明者于晨, 于润胜, 叶莹莹, 曹健, 曹艳, 李明禄, 谭鸿杰, 钱诗友 申请人:上海交通大学