发明名称 一种降低消息中间件网络负载的消息传递方法
摘要 本发明公开了一种降低消息中间件网络负载的消息传递方法,其根据当前节点接收到的所有原始消息的结构相似度进行一次分类,得到同类原始消息集,再根据同类原始消息集中原始消息的下一跳节点的地址进行二次分类,得到同类原始消息子集,分别提取子集中所有原始消息的相同和相异部分内容,再进行差分编码,并封包成已编码消息发送给下一跳节点,下一跳节点拆包并解析,解析出的原始消息的目标节点的地址为该节点时,将该原始消息发送给消息消费者,该节点对未处理的所有原始消息再重复分类、封包的过程,直至发送给消息消费者,优点在于通过合理地利用XML文本数据格式的消息的结构相似性,及巧妙地使用差分编码,有效地降低了消息中间件的网络负载。
申请公布号 CN101917332A 申请公布日期 2010.12.15
申请号 CN201010184227.8 申请日期 2010.05.24
申请人 宁波东海蓝帆科技有限公司 发明人 干红华;姜建生;赵晨;俞弘;廖兰新
分类号 H04L12/56(2006.01)I;H04L29/08(2006.01)I;H04L1/00(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 程晓明
主权项 1.一种降低消息中间件网络负载的消息传递方法,其特征在于包括以下步骤:①组建一个基于XML文本数据格式消息传递的消息中间件,该消息中间件包括至少两个消息队列服务器,将每个消息队列服务器作为一个节点,在每个节点中设置具有能够根据目标节点的地址决定下一跳节点的地址且支持消息拆包和封包功能的应用层路由模式;②在每个节点中设置一个用于计算消息收集时间的第一计时模块和一个用于计算消息等待时间的第二计时模块,在第一计时模块中设置一个最长原始消息收集时间,在第二计时模块中设置一个最长原始消息等待时间,每个节点接收消息生产者或者上一个节点发出的多条原始消息,当消息收集时间大于最长原始消息收集时间时,认为原始消息已经被收集了足够长的时间,节点完成一次消息收集,或当消息等待时间大于最长原始消息等待时间时,认为原始消息等待超时,节点完成一次消息收集;在此,假设消息生产者具有一个或多个功能,消息生产者的每个功能具有一个消息模板,对于消息生产者的同一个功能发出的多条原始消息结构基本相同;③定义当前完成一次消息收集的节点为当前节点;④计算当前节点中所有原始消息的结构相似度,并根据结构相似度对所有原始消息进行一次分类,得到多个同类原始消息集;⑤当前节点根据每个同类原始消息集中各个原始消息的下一跳节点的地址,对每个同类原始消息集中的所有原始消息进行二次分类,得到多个同类原始消息子集,每个同类原始消息子集中的各条原始消息具有共同的下一跳节点的地址;⑥定义当前正在处理的同类原始消息子集为当前同类原始消息子集,提取当前同类原始消息子集中所有原始消息的相同部分内容,并在所有原始消息的相异部分内容中标上各个原始消息各自的目标节点的地址,将当前同类原始消息子集中的所有原始消息的相同部分内容与相异部分内容进行差分编码,并封包成一条已编码消息,然后当前节点根据共同的下一跳节点的地址,将已编码消息发送给对应的下一跳节点;⑦将下一个待处理的同类原始消息子集作为当前同类原始消息子集,重复执行步骤⑥的过程,直至所有同类原始消息子集处理完毕;⑧下一跳节点接收已编码消息,将该下一跳节点作为当前节点,该当前节点对已编码消息进行拆包解析,得到多条原始消息;⑨定义解析出的多条原始消息中当前正在处理的原始消息为当前原始消息,判断当前原始消息的目标节点的地址是否为当前节点,如果是,则当前节点将当前原始消息发送给当前节点对应的消息消费者,并继续执行,否则,对当前原始消息不进行处理;⑩将解析出的多条原始消息中下一条待处理的原始消息作为当前原始消息,并返回执行步骤⑨,直至解析出的多条原始消息全部处理完毕;<img file="FSA00000117552800021.GIF" wi="42" he="41" />对于当前节点解析出的多条原始消息中未处理的所有原始消息,重复执行步骤④至⑩,以完成消息生产者发出的所有原始消息到达消息消费者。
地址 315040 浙江省宁波市科技园区创业大厦2-44室