当 Messaging 遇上 Jepsen
分布式系统面临的挑战
Is it better to be alive and wrong or right and dead?随着计算机技术的发展,系统架构从集中式演进到分布式。分布式系统相对于单台机器来说提供了更好的可扩展性,容错性以及更低的延迟,但在单台计算机上运行软件和分布式系统上运行软件却有着根本的区别,其中一点便是单台计算机上运行软件,错误是可预测的。
高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用
在消息队列中,当消费者去消费消息的时候,无论是通过 pull 的方式还是 push 的方式,都可能会出现大批量的消息突刺。如果此时要处理所有消息,很可能会导致系统负载过高,影响稳定性。但其实可能后面几秒之内都没有消息投递,若直接把多余的消息丢掉则没有充分利用系统处理消息的能力。
RocketMQ 平滑升级到主从切换实战
本文主要介绍如何将 RocketMQ 集群从原先的主从同步升级到主从切换。
首先介绍与 DLedger 多副本即 RocketMQ 主从切换相关的核心配置属性,然后尝试搭建一个主从同步集群,再从原先的 RocketMQ 集群平滑升级到 DLedger 集群的示例,并简单测试一下主从切换功能。
rocketMq-Topic创建过程
Topic可以理解为在rocketMq体系当中作为一个逻辑消息组织形式,一般情况下一类业务消息会申请一个topic来实现业务之间隔离。
Topic的存储
Topic的实际存储模型
说明:
该图分享自: RocketMQ概念模型
Topic是一个逻辑上的概念,实际上在每个broker上以queue的形式保存,也就是说每个topic在broker上会划分成几个逻辑队列,每个逻辑队列保存一部分消息数据,但是保存的消息数据实际上不是真正的消息数据,而是指向commit log的消息索引。