【问题标题】:Can consumer groups span different nodes in a cluster?消费者组可以跨越集群中的不同节点吗?
【发布时间】:2014-01-05 22:56:13
【问题描述】:

我见过很多使用高级消费者(消费者组)在同一进程中使用多个线程来消费主题的示例。你可以让多个进程(在不同的机器上)分割分区并并行消费吗?如果有,你有什么例子吗?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    简短的回答是肯定的。使用高级消费者,每个线程处理一个或多个分区,并使用zookeeper进行协调。由于使用了 zookeeper,因此可以将它们分散到不同的进程和机器上。 Kafka wiki 有一个example using the high-level consumer。您可以在多台机器上运行它以查看它的运行情况。添加或删除高级消费者时,将自动在消费者之间重新平衡。请记住,分区定义了主题的并行度,因此如果您的使用者线程多于分区,则其中一些线程将处于空闲状态。

    另外值得注意的是,Kafka 没有提供任何类型的分布式框架来跨机器运行消费者应用程序。这就是 Storm 或 Spark 等系统有用的地方,因为它们可以从 Kafka 消费并管理进行消费的进程。 Kafka 背后的人最近还开源了一个名为 Samza 的包,它在 Hadoop/YARN 上提供了更高级别的基于 kafka 的流处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      相关资源
      最近更新 更多