对于上下文,我正在尝试将我们的 python 工作进程转移到基于 kafka (0.9.0) 的架构,但我对分区相对于消费者线程的限制感到困惑。分区上有多个消费者会导致同一分区上的其他线程等待当前线程完成吗?
问问题
786 次
1 回答
1
我实际上不确定 Kafka 0.9,还没有必要彻底检查新设计,但是 AFAIK 这在 v8 中是不可能的。
低级消费者当然不可能,但我也认为,如果您分配的线程多于高级消费者中的分区,那么每个分区只有一个线程在任何时候都是活动的。这就是为什么我们说 Kafka 中的并行性是由分区数量决定的(可以针对主题动态增加)。
如果您考虑一下,这将需要在消费线程之间的消息级别上进行协调,这将不利于性能。v0.8 中的消费者组用于使线程 -> 分区分配成为 Kafka 的职责,而不是在单个分区上协调多个线程。
现在,这可能是在 0.9 中发生了变化,但我对此非常怀疑。
[编辑] 现在我再次阅读您的问题,我希望我正确理解了您的问题。我的意思是,每个分区有多个消费者(不是消费者线程)是很正常的事情(每个都有自己的偏移量),所以我假设您在询问线程/分区关系。
于 2016-02-21T07:07:15.217 回答