【发布时间】:2016-07-12 09:34:08
【问题描述】:
Kafka 根据生产者分配的分区将传入消息分成多个分区。来自分区的消息然后被不同消费者组中的消费者消费。
这种架构让我对使用 Kafka 作为工作/任务队列持谨慎态度,因为我必须在生产时指定分区,这间接限制了哪些消费者可以在上面工作,因为一个分区只发送给一个消费者消费群体。我宁愿不提前指定分区,以便可以执行该任务的任何消费者都可以这样做。有没有办法在 Kafka 架构中构建分区/生产者,让下一个可用的消费者拉取任务,而不必在生产工作时通过选择分区来提前拆分工作?
对该主题仅使用一个分区会将所有任务放在同一个队列中,但是每个消费者组的消费者数量限制为 1 个,因此每个消费者必须在不同的组中。然后所有的任务都被分配给每个消费者组,但这不是我正在寻找的那种工作队列。
Apache Kafka 是否适合用作任务队列?
【问题讨论】:
-
附带说明:您的问题可以使用具有共享主题消费者订阅的 Apache Pulsar 来解决。见pulsar.apache.org/docs/latest/getting-started/…
标签: architecture message-queue apache-kafka