关联知识库:# 自动创建Topic与Broker负载均衡冲突
自动创建Topic与Broker负载均衡冲突
问题核心原因(简单版)
1. 自动创建Topic的机制
- 当Producer第一次发送消息到不存在的Topic时
- RocketMQ会用默认的TBW102 Topic作为模板
- 从所有开启自动创建的Broker中获取路由信息
- 根据负载算法选择一台Broker发送消息
2. 问题产生的根本原因
- 消息发送到Broker后,Broker发现本地没有该Topic
- 自动创建Topic,并注册到NameServer
- 后续所有该Topic的消息都会发送到这台Broker上
- 结果:Topic只分布在一台Broker上,破坏了负载均衡
3. 作者的观点验证
✅ 完全正确:这就是一个自动创建 vs 负载均衡的冲突
- 开自动创建 → 负载不均衡(Topic只在一台Broker上)
- 手动创建 → 负载均衡(Topic分布在所有Broker上)
4. 简单解决方案
- 测试环境:开自动创建(方便开发)
- 生产环境:关自动创建,手动创建Topic(保证负载均衡)
总结
自动创建Topic确实会导致负载不均衡,作者的解决方案很实用!