出于某种原因,我不得不使用一个消费者来处理两个主题。现在我的问题是:
1.我们没有办法指定要投票的主题,这背后的原因是什么?
1.一个pull/consume是否会从不同的主题返回消息?
1.假设每个主题都有足够的消息用于多个轮询请求,那么每个轮询调用将以循环方式返回来自不同主题的消息吗?
1.如果两个主题的流量严重不平衡,则消息较多的投票主题是否会在投票请求中获得更多关注。
每个Kafka资源似乎都告诉我一个消费者可以订阅多个主题,但令人惊讶的是,我找不到有用的信息来回答上述问题。
出于某种原因,我不得不使用一个消费者来处理两个主题。现在我的问题是:
1.我们没有办法指定要投票的主题,这背后的原因是什么?
1.一个pull/consume是否会从不同的主题返回消息?
1.假设每个主题都有足够的消息用于多个轮询请求,那么每个轮询调用将以循环方式返回来自不同主题的消息吗?
1.如果两个主题的流量严重不平衡,则消息较多的投票主题是否会在投票请求中获得更多关注。
每个Kafka资源似乎都告诉我一个消费者可以订阅多个主题,但令人惊讶的是,我找不到有用的信息来回答上述问题。
1条答案
按热度按时间von4xj4u1#
1.消费者被认为是一个订阅单位。例如,有一个配置参数
max.poll.interval
定义了在整个使用者被视为失败之前轮询之间的最大周期。您可以根据ConsumerRecords
的topic()
值手动分派ConsumerRecords
。否则,创建多个使用者也没问题。你甚至可以从一个线程中轮询它们,只要有意识地去做。1.是的,会的。
1.记录将以一种“批处理循环”方式返回。我发现answer很有用。
1.至于你的消费者跟上正在产生的消息总量,这是没有意义的,因为你会得到所有的消息。因此,无需额外关注。否则,我想,但不能保证,你会得到一些恒定的速率从分区你没有跟上,和较低的速率从其他的。如果它结束了,你没有跟上所有分区,你会得到恒定的速率从所有这些分区。
希望对你有帮助。