RocketMQ扩容缩容解决方案

nameserver扩容

nameserver一般不扩容 生产上部署三个节点足够了,如果要支持动态扩容,需要修改rocketmq的源码,让broker,客户端实时感知最新的nameserver列表,本质上就是类似分布式的服务注册与发现;

broker扩容

直接加入,并且在新的broker创建新topic并且分配队列,或者在已有topic基础上分配队列

nameserver缩容

引入注册中心后,正常下线即可

broker缩容

设置broker为只读,然后把该broker的所有队列的消息转移到其他broker上

总结思考

类比其他分布式存储ES、MongoDB,RcoketMQ支持分片,支持扩容,每个主从集群互相独立,客户端的入口是nameserver,类似ES的协调节点和MongoDB的Route Server,本质上是一种去中心化架构

上一篇:rocketmq消息积压监控java代码实现


下一篇:简单描述Broker Mq的架构