下载了 RocketMQ 源码,在本地 IDE 中正常启动了 Broker 服务 和 NameServer 服务。想到 Broker 有自动创建 Topic 的机制,可以通过在 Broker 的配置文件中添加如下配置:问题在于即使配置了这个参数,重启 Broker 服务之后,发送消息时还是如上的报错,因此打算仔细看看 RocketMQ 自动创建 Topic 的实现原理。
DefaultMQPushConsumerImpl创建实例时,会初始化rebalanceImpl成员变量 private final RebalanceImpl rebalanceImpl = new RebalancePushImpl;
//如果没有拉到数据 case ResponseCode.PULL_NOT_FOUND: // broker 和 consumer 都允许 suspend,默认开启 if { long pollingTimeMills = suspendTimeoutMillisLong;