rocketmq: broker集群之间的brokerName命名是否可以一致。

今天回顾了下broker与nameserver之间建立连接之后30S一次的心跳测试源码和创建topic过程中broker主动推送topicConfig到Nameserver的源码(实际上心跳测试调用的方法和推送创建topic过程中broker主动推送topicConfig调用的方法是一样的,最终都是调用doRegisterBrokerAll())。心里有两个疑惑产生:

1.我们知道创建一个新的topic或者更新个topic可用命令行 updateTopic 然后附上3个参数 -n(nameserver地址) -t(topic名称) -c或者-b

broker集群名称 或者单个broker名称 来创建一个topic。。(具体创建一个topic的源码分析请看我下一篇文章 topic创建的过程源码分析。)  那么在这种情况下 能否在不同的broker集群中创建相同的topic。

2.如果能在不同的broker集群中创建相同的topic,那么不同broker集群间的broker命名是否可以有相同的。

带着这两个问题我们一起来分析下源码。

下面的代码是nameserver在接收到心跳包或者更新topic本地信息的时候的核心方法。截取了核心部分分析。

对于不同集群建立相同的topic而言是没问题的。但是如果是不同集群间的brokername有一致的则会有很大的问题。

rocketmq: broker集群之间的brokerName命名是否可以一致。_第1张图片

 

你可能感兴趣的:(rocketmq学习)