qmq消息队列-高可用


今天分享下qmq高可用的特性

高可用说明

qmq高可用主要从两个角度提供:

  • 分片:qmq不是基于partition,可以很容易通过添加更多的记起提高一个subject的可用性,消息按照一定的负载均衡策略分布在不同的机器上,某台机器离线后producer将不再将消息发送给该Server
  • 复制:QMQ通过主从复制来提高单机可用性。QMQ将服务端集群划分为多个group,每个group包含一个master和一个slave。消息的发送和消费全部指向master,slave只为保证可用性

主从切换

  • 不支持自动主从切换,需要人工介入;
  • 切换步骤:
    • 将某组设置为readonly,设置readonly之后,该组将不再接受新的消息;
    • 等待主从完全同步,可以通过观察master的slaveMessageLogLag监控了解;
    • 停止slave, 停止master;
    • 执行ReplaceBroker命令切换角色(该步骤一定要在停止应用之后执行);
    • 启动slave, 启动master;

部署方案实例

  • metaserver:部署两台应用,然后配置nginx作为负载均衡,确保mysql可用;
  • broker:部署两组,每组为一主一从两台,则至少部署4台;
  • delay server:同broker部署方式(如没有延时消息可以不部署);
  • watchdog:建议部署两台,但某个时刻只有一台工作,当一台故障会自动切换(如无事务或持久化消息可以不部署);

文章作者: Xudong Jiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Xudong Jiang !
 上一篇
elasticsearch学习系列-分布式系统中深度分页 elasticsearch学习系列-分布式系统中深度分页
本文介绍下ES中搜索的分页功能,据此也引出分布式系统中深度分页的问题 ES分页功能 elasticsearch接收form(开始返回的结果位置,从0开始)和size(返回的数量)参数; 结果集在返回之前先排序,每个分片产生自己的排序结果,再
2020-02-11
下一篇 
qmq消息队列-架构学习 qmq消息队列-架构学习
今天分享下qmq的架构 组件介绍 meta server: 提供集群管理和集群发现的作用 server: 提供实时消息服务 delay server: 提供延时/定时消息服务,延时消息先在delay server排队,时间到之后再发送给se
2020-01-19
  目录