开发者社区 > 云原生 > 正文

自动创建主题问题

broker端开启了自动创建Topic,生产端默认配置,首先发送一条消息,超过30s后在发送消息,只会在一个master节点上面创建topic,不会再所有master节点上面创建topic

希望所有master节点都会自动创建topic

实际情况:只有一个master节点有topic

broker 4.3.0 client 4.3.0 3 namesrv 2 master 2 slave

分析自动创建topic源码发现,client第一次发送会根据AUTO_CREATE_TOPIC_KEY从namesrv拿到topicRouteData作为新创建topic的topicRouteData,而MQClientInstance里面每30s会拉取topic的topicRouteData最新信息并更新。

  异常情况1:Producer发送一条信息后关闭掉Producer,这个时候只有在一个broker上面有topic信息,下一次启动Producer发送消息的时候就会直接从NameSrv拿到最新的topicRouteData,这样就只能在一个master节点上面创建topic

  异常情况2:Producer发送一条信息后,这个时候只有在一个broker上面有topic信息,隔35s在发送一条信息,在这段时间内,已经完成MQClientInstance对Topic Route的更新,topicRouteData只会拉取到一个master节点,这样也只能在一个master节点上面创建topic

原提问者GitHub用户makabakaboom

展开
收起
芬奇福贵 2023-05-26 16:15:10 174 0
1 条回答
写回答
取消 提交回答
  • 建议关闭自动创建topic的原因还有一个原因在于topic属于资源,topic的新增会带来很多的资源上的使用。

    原回答者GitHub用户duhengforever

    2023-05-26 18:04:46
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载