nameserver扩容
nameserver一般不扩容 生产上部署三个节点足够了,如果要支持动态扩容,需要修改rocketmq的源码,让broker,客户端实时感知最新的nameserver列表,本质上就是类似分布式的服务注册与发现;
broker扩容
直接加入,并且在新的broker创建新topic并且分配队列,或者在已有topic基础上分配队列
nameserver缩容
引入注册中心后,正常下线即可
broker缩容
设置broker为只读,然后把该broker的所有队列的消息转移到其他broker上
总结思考
类比其他分布式存储ES、MongoDB,RcoketMQ支持分片,支持扩容,每个主从集群互相独立,客户端的入口是nameserver,类似ES的协调节点和MongoDB的Route Server,本质上是一种去中心化架构