topic主题里面是会有一些队列的。
可以看到消费的消息来自于不同的broker。broker后面还带有queueid,可以看到brokera后面是带有四个队列。 同理brokerb也会有四条队列。
创建topic并没有指定创建在哪个broker上面。它会去创建在默认的broker cluster上面。 brokerClusterName=DefaultCluster 创建topic会创建在DefaultCluster上面。
创建topic会在brokera和brokerb上面分别的创建。所以在brokera和brokerb上面都会有mytopic1。
mytopic1是逻辑层面的,在物理层面如何表示呢?创建了一个topic那么这个topic后面会对应这messagequeue,brokera得到的其实不是mytopic1,而是得到四个队列。每个队列有自己的ID。这四个队列属于mytopic1的四个队列,在这里可以看到物理层面的表现。
创建topic1在brokera上面,同样brokerb上面也会有。
生产者发送消息是往topic1上面去发送10条消息。对于生产者来说会从nameserver这边拿到mytopic1对应broker的集群名称,在集群里面会有两个broker。
消息在队列里面是有顺序的,谁在前在后是有顺序的。两个broker都会在各自的队列里面都会收到消息。
一个topic配置多少个队列在broker配置里面其实就已经定义了,defaultTopicQueueNums=4
offset指的是偏移量,偏移量非常重要,因为消费的消息有问题那么要回溯消费找到指定偏移量的消息再进行消费。
消息都是保存在broker上面,它还没有被删除之前可以通过定位找到broker消息队列的偏移量找到之前存储的消息。
如果在发送10条消息和消费十条消息,你会发现偏移量上去了,这是因为队列之前有消息在了,再发送消息就往后放往后面移了。