请问不同的brokergroup之间会进行同步吗?
majiabaomajiabao opened this issue · comments
问题描述
请问不同的brokergroup之间会进行同步吗?
不同broker group之间是不会同步的
多谢,那再请问一下,客户端在发送消息会去metaServer获取brokerGroup,然后取一个去发送,那客户端在pull消息时,也是从metaServer拿了一个brokerGroup,这两个brokerGroup如果不一样,那消息是不是就拉取不到呢?
这种情况是会拉取不到消息,生产和消费拿到的broker group正常情况下要保持一致。
那这个生产和消费的绑定,是在哪里进行的呢?能帮忙给一下相关的类名,我没找到这块逻辑
这是路由分配相关的功能,可以在metaserver里找到,分配相关的逻辑可以看下面的类。
qunar.tc.qmq.meta.route.impl.DefaultSubjectRouter#route
好的,多谢
看了一下qunar.tc.qmq.meta.route.impl.DefaultSubjectRouter#route,有个地方不太理解,这个方法的返回类型是集合List,producer和consumer都可以拿到一样的集合,但都是选择其中一个连接,那怎么保证选择的是一样的呢?麻烦再帮忙看一下
为了保证服务的可用性,每个主题都必须至少分配2个broker group,这样才能避免单点故障。
对于producer,消息会平均发送到多组broker group上。
对于consumer,它也会根据负载均衡规则轮流从多组broker group上拉取消息。
所以正常情况下保持列表一致就没有问题了。
了解了,多谢