[发明专利]一种基于消息队列的消息传递方法及系统有效
| 申请号: | 201611234445.1 | 申请日: | 2016-12-28 |
| 公开(公告)号: | CN106656760B | 公开(公告)日: | 2018-02-06 |
| 发明(设计)人: | 张成康;刘伟超;黄良迅;朱国栋;章艺 | 申请(专利权)人: | 广州赛意信息科技股份有限公司 |
| 主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
| 代理公司: | 广州番禺容大专利代理事务所(普通合伙)44326 | 代理人: | 刘新年 |
| 地址: | 510623 广东省广州市天河区珠*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 消息 队列 传递 方法 系统 | ||
技术领域
本发明涉及一种消息传递方法及系统,特别是涉及一种基于消息队列的消息传递方法及系统。
背景技术
消息主要用于网络设备(尤其是服务器)之间的信息交互。消息异步传输由于其具有可降低消息发送端和消息接收端之间的系统耦合度、以及消息发送端和消息接收端不需要同时在线等特点,而在通讯系统中被广泛应用。
消息传递是一种异步通信方式,具体就是在同一个或不同的机器上运行的多个应用程序进行直接可靠的消息传递。应用程序通过发送一种叫消息的数据包和其他应用程序通信。
图1为现有技术中两个应用程序进行消息传递的示意图。如图1所示,两个应用程序通过消息队列进行通信。应用程序发送端对需要发送的消息进行压缩处理,并向应用程序接收端发送压缩后的消息,压缩后的消息会被存储在消息队列中等待接收,如果应用程序接收端处理消息的速度慢于发送端产生消息的速度,那么队列里的消息数就会增加。此外,在发送端发送消息的过程中,接收端可能是离线的。在这种情况下,当接收端上线后,它会从队列中得到消息。
消息队列通常由消息代理提供。消息代理是一个独立的应用程序(一个服务),消息代理将其接收到的消息存储在接收端对应的消息队列中,之后,消息队列根据该消息队列对应的路由向接收端传输消息队列中的消息;在消息被成功传输至接收端之后,消息代理会删除相应消息队列中存储的消息,在接收端不可用或网络存在故障等情况下,消息代理会在后续不断地尝试发送消息队列中的消息,直到消息队列中的消息被成功发送至接收端。
然而,每个消息代理存储消息的数量都有一定限制,当消息代理存储的消息到达其上限时,大量的消息等待处理,这样容易造成代理服务处理缓慢,同时又增加了硬件服务器的处理压力,容易产生服务器宕机和消息丢失的风险。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种基于消息队列的消息传递方法及系统,以提高消息传递的可靠性和稳定性。
为达上述及其它目的,本发明提出一种基于消息队列的消息传递方法,包括如下步骤:
步骤一,源服务器的消息代理接收源应用程序发送的消息数据包;
步骤二,消息代理于接收到消息数据包后,判断其消息队列中消息的数量是否已达到预定的上限值;
步骤三,若消息队列中消息的存储数量未达到上限值,则消息代理将接收到的消息数据包存储于该消息队列中,并判断消息传递的目标服务器是否与源服务器连接,若连接,则直接将消息数据包传递至目标服务器的目标应用程序,若未连接或消息队列中消息的存储数量已到达上限值,则进入步骤四;
步骤四,搜索与其建立连接的有相同消息传递功能的其他服务器,依据预设的选择规则将消息数据包发送至一中间服务器,由中间服务器转发该消息数据包。
进一步地,于步骤四之后,还包括如下步骤:
步骤S1,中间服务器的消息代理于接收到消息数据包后,判断其消息队列中的消息数量是否到达预设上限值;
步骤S2,若未到达上限值,则将接收到的数据包存储于消息队列中,并判断消息传递的目标服务器是否与源服务器连接,若连接,则直接将消息数据包传递至目标服务器的应用程序;若已达到上限值或中间服务器与目标服务器未连接,则返回步骤四。
进一步地,于步骤S2中,若消息队列中的消息数量已达到上限值,中间服务器反馈信息至源服务器端,由源服务器端根据预设的选择规则再次选择一中间服务器。
进一步地,该消息数据包包括地址信息以及消息包的具体内容,该地址信息包括目标服务器地址、目标应用程序、源服务器地址以及源应用程序,消息包的具体内容则为所要传递的消息的具体内容。
进一步地,于各服务器中,预先存储有与其建立连接的有相同消息传递功能的其他服务器的选择规则。
进一步地,于步骤四之后,还包括将各服务器之间的消息路径予以显示的步骤。
进一步地,对于每个服务器,在消息传递之前,设置好传递规则。
进一步地,该传递规则包括持久规则、非持久规则以及同步规则。
进一步地,该同步规则为:消息直接发送给目标应用程序,在接收者确认一个消息之前,发送者程序一直被阻塞。
为达到上述目的,本发明还提供一种基于消息队列的消息传递系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州赛意信息科技股份有限公司,未经广州赛意信息科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611234445.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种邮件的发送方法、接收方法及移动终端
- 下一篇:邮件管理的方法及装置





