[发明专利]一种基于负载系数的消息转发链路均衡方法及装置有效
申请号: | 201210468344.6 | 申请日: | 2012-11-19 |
公开(公告)号: | CN102970243A | 公开(公告)日: | 2013-03-13 |
发明(设计)人: | 官元峰 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | H04L12/803 | 分类号: | H04L12/803 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 负载 系数 消息 转发 均衡 方法 装置 | ||
技术领域
本发明涉及一种消息处理及转发系统中的消息分配方法,特别涉及一种基于负载系数的消息转发链路均衡方法及装置。
背景技术
在类似场景的消息分发算法中,有如下的几类:均分算法,连接到系统中的多条接收链路以平均分配的方式获得转发消息,比如通常的四层交换机就采用这种分配方式。按顺序分配,当接收消息的链路有是否可接受的状态控制时,将链路按一定的顺序排列,每次分发消息时按此顺序检查链路状态,将消息转发给第一个可用的链路,比如Tuxedo的业务请求转发中对同一service有多进程的情况下的请求分发。按负载系数的分发,接收消息链路的目标系统有不同的负载能力,需要按照这不同的能力进行负载均衡。轮询方式:这个方法可以认为是方法1和方法2的结合,将接收链路组成一个环,进入的消息根据当前指针在环上的位置检测,链路有效时则向该链路转发消息,能做到平均负载。
以上的几类负载均衡的方式,都不能适应这样一种场景要求:不同标识之间的链路,按负载系数进行均衡,但相同标识的链路允许有多个,同时,这些链路的连接状态并不稳定,可能随时增加或减少,这会对按系数分配的负载造成混乱。
发明内容
本发明所要解决的技术问题是提供一种负载系数按权重方式表达,对随时变更的目标链路可以自动适应,自动调整负载系数分配的基于负载系数的消息转发链路均衡方法及装置。
本发明解决上述技术问题的技术方案如下:一种基于负载系数的消息转发链路均衡方法,其特征在于,包括以下步骤:
步骤1:接收消息;
步骤2:将各消息转发链路用不同的负载系数进行标识,查询各消息转发链路的链路计数器,获取各链路计数器的计数值;
步骤3:根据各链路计数器的计数值,用当前消息转发链路的消息转发数量除以所有消息转发链路的消息转发数量,获得各消息转发链路的当前计数比例;
步骤4:根据各消息转发链路的计数值,用当前消息转发链路的负载系数除以所有消息转发链路的负载系数,获得各消息转发链路的目标计数比例;
步骤:5:用各消息转发链路的目标计数比例分别减去各自的当前计数比例,获得各消息转发链路的计数比例差值,选取计数比例差值中最大的消息转发链路,之后对其进行标识;
步骤6:查询标识后的消息转发链路,比较消息转发链路中各目标链路的目标计数器,获得目标计数器的计数值,选择计数值最小的目标链路;
步骤7:将接收到的消息转发给计数值最小的目标链路。
本发明的有益效果是:首先在链路间对比获得计数值最小的链路,再在计数值最小的链路中比较获得计数值最小的目标链路,进而将消息转发到消息转发量最小的目标链路中,以两层筛选的方式,实现各目标链路中消息转发数量的动态平衡。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,在进行步骤1之前还进一步设定,不同负载系数进行标识的消息转发链路进行的消息转发数量的比例与预设的负载系数的比例相等。
采用上述进一步方案的有益效果是系统配置消息转发规则,并以此为基础进行各目标链路消息转发数量的比较,更加有利于维持各目标链路间消息转发数量的平衡。
进一步,在进行步骤1之前还进一步设定,同一负载系数进行标识的消息转发链路上转发的消息数量,等于该消息转发链路中各目标链路转发的消息数量总和。
采用上述进一步方案的有益效果是系统配置消息转发规则,并以此为基础进行各目标链路消息转发数量的比较,更加有利于维持各目标链路间消息转发数量的平衡。
进一步,在进行步骤1之前还进一步设定,同一负载系数所标识的消息转发链路上转发的消息平均分配给该消息转发链路上的各目标链路。
采用上述进一步方案的有益效果是系统配置消息转发规则,并以此为基础进行各目标链路消息转发数量的比较,更加有利于维持各目标链路间消息转发数量的平衡。
进一步,当有新增的消息转发链路时,清空系统中所有链路计数器和目标计数器。
采用上述进一步方案的有益效果是清除链路计数器,防止因为历史计数值而产生累加错误。
一种基于负载系数的消息转发链路均衡装置,包括接收模块,查询计数器模块,计算模块,比较模块,比较目标链路模块,转发模块;
所述接收模块,用于接收消息;
所述查询计数器模块,用于将各消息转发链路用不同的负载系数进行标识,查询各消息转发链路的链路计数器,获取各链路计数器的计数值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210468344.6/2.html,转载请声明来源钻瓜专利网。