[发明专利]一种消息处理方法、服务器集群及系统有效
| 申请号: | 201710262421.5 | 申请日: | 2017-04-20 |
| 公开(公告)号: | CN106878473B | 公开(公告)日: | 2021-03-30 |
| 发明(设计)人: | 张晓宇;周维跃;庄秋涛;谢家提 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08 |
| 代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 消息 处理 方法 服务器 集群 系统 | ||
本申请提供了一种消息处理方法、服务器集群及系统,该服务器集群包括多个队列服务器,目标队列服务器将第一客户端发送的请求消息写入目标日志文件时,触发服务器集群中的备份队列服务器同步该目标日志文件,在备份队列服务器将同步的请求消息推送至对应的备份消息队列,向目标队列服务器反馈备份完成信息,当目标队列服务器接收到第一预设数量的备份完成信息后,再将该请求消息推送至目标消息队列存储,并向第一客户端反馈针对该请求消息的成功响应信息,从而保证请求消息的生产可靠性以及存储可靠性;而且,由于本申请采用多副本机制,从而保证了目标队列服务器工作异常的情况下,系统的可靠性以及可用性。
技术领域
本申请主要涉及消息处理应用领域,更具体地说是涉及一种消息处理方法、服务器集群及系统。
背景技术
在各领域应用中,客户端之间的消息传输已成为实现应用业务的基本过程,参照图1(a)所示,传统的消息传输通常是消息生产者与消息消费者进行一对一传输,很容易导致消息丢失,且往往无法实现消息复用,影响工作效率。
为了解决上述问题,如图1(b)所示,目前通常会在消息生产者与消息消费者之间设置开源消息队列中间件,用来存储消息生产者生成的消息,并根据需要转发至消息消费者,实现了消息复用,且避免了因突然产生大量消息而导致消息的丢失等问题。
然而,现有的开源消息队列中间件主要采用单击或主从结构,一旦其中的某一个节点发生故障,将会导致整个系统不可用,在此期间若有丢失的消息,将导致消息不可回溯,从而影响系统的可靠且稳定运行;而且,当调整开源消息队列中间件中节点数量时,将会引发全局的数据重新均衡,影响系统可用性。
发明内容
有鉴于此,本申请提供了一种消息处理方法、服务器集群及系统,采用多副本的备份机制,在目标队列服务器工作异常情况下,保证了系统的可靠性以及稳定性。
为了实现上述目的,本申请提供了以下技术方案:
本申请实施例提供了一种消息处理方法,应用于服务器集群,所述服务器集群包括多个队列服务器,所述方法包括:
目标队列服务器获得第一客户端发送的请求消息,所述目标队列服务器是所述多个队列服务器中的任意一个队列服务器,将所述多个队列服务器中的其他队列服务器作为备份队列服务器;
所述目标队列服务器将所述请求消息写入目标日志文件,并触发所述备份队列服务器同步所述目标日志文件;
所述备份队列服务器将同步的所述请求消息推送至对应的备份消息队列存储,并向所述目标队列服务器反馈备份完成信息;
所述目标队列服务器接收到第一预设数量的所述备份队列服务器反馈的所述备份完成信息,将所述请求消息推送至目标消息队列存储,并向所述第一客户端反馈针对所述请求消息的成功响应信息。
本申请实施例还提供了一种服务器集群,包括:一个目标队列服务器以及多个备份队列服务器,其中:
所述目标队列服务器,用于获得第一客户端发送的请求消息,并将所述请求消息写入目标日志文件,触发所述备份队列服务器同步所述目标日志文件;
所述备份队列服务器,用于将同步的所述请求消息推送至对应的备份消息队列存储,并向所述目标队列服务器反馈备份完成信息,以使所述目标队列服务器接收到第一预设数量的所述备份队列服务器反馈的所述备份完成信息,将所述请求消息推送至目标消息队列存储,并向所述第一客户端反馈针对所述请求消息的成功响应信息。
本申请实施例还提供了一种消息处理系统,其特征在于,所述系统包括:多个客户端以及至少一个如上所述的服务器集群。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710262421.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:同轴扬声器及其制造方法
- 下一篇:消息发送方法及装置





