Kafka 从多节点消费单个主题
Kafka consuming a single topic from multi node
我在两台不同的设备上有一个 Kafka 消费者应用程序 运行,试图使用同一主题 topic x
,每台设备都有自己的代理。两个 broker 连接到同一个 zookeeper。
Kafka 可以使用这种架构吗?我可以在不同的设备上与不同的经纪人一起使用相同的主题吗?我正在尝试实现此功能,但出现此错误 LEADER_NOT_AVAILABLE
.
在 Kafka 中,代理不消费主题。经纪人一起工作形成一个集群,作为一个整体,托管和服务潜在的多个主题,同时提供复制和高可用性。代理接收并存储生产者发送给每个特定主题的消息,并允许消费者使用具有各种语义的这些主题进行消费(参见 "consumer groups")。
我不确定你在处理什么设备,但典型的设置是有一个 Kafka 代理集群(由 ZooKeeper 集群支持),并让你的应用程序、生产者和消费者连接到这个 Kafka通过向他们提供代理主机名列表来进行集群。
根据您的需要、主题数量、producer/consumers 数量等,您可以调整 ZooKeeper 和 Kafka 集群的大小。一个好的开始是每个 3 个,因此您至少可以通过能够丢失一个节点而不会丢失数据来获得一定程度的高可用性。对于开发或只是玩玩,由单节点 ZooKeeper 集群支持的单代理 Kafka 集群可以正常工作。
最后,如果您有多个设备使用同一个主题,您必须决定是否希望它们接收相同的消息,或者是否希望它们分担负载。如果是第一种情况,您需要确保它们作为两个不同的消费者群体进行消费。对于后者,你需要确保他们在同一个消费者组中,这样他们就不会收到相同的消息。
要了解更多信息,请查看 Kafka 的 Introduction 文档。
我在两台不同的设备上有一个 Kafka 消费者应用程序 运行,试图使用同一主题 topic x
,每台设备都有自己的代理。两个 broker 连接到同一个 zookeeper。
Kafka 可以使用这种架构吗?我可以在不同的设备上与不同的经纪人一起使用相同的主题吗?我正在尝试实现此功能,但出现此错误 LEADER_NOT_AVAILABLE
.
在 Kafka 中,代理不消费主题。经纪人一起工作形成一个集群,作为一个整体,托管和服务潜在的多个主题,同时提供复制和高可用性。代理接收并存储生产者发送给每个特定主题的消息,并允许消费者使用具有各种语义的这些主题进行消费(参见 "consumer groups")。
我不确定你在处理什么设备,但典型的设置是有一个 Kafka 代理集群(由 ZooKeeper 集群支持),并让你的应用程序、生产者和消费者连接到这个 Kafka通过向他们提供代理主机名列表来进行集群。
根据您的需要、主题数量、producer/consumers 数量等,您可以调整 ZooKeeper 和 Kafka 集群的大小。一个好的开始是每个 3 个,因此您至少可以通过能够丢失一个节点而不会丢失数据来获得一定程度的高可用性。对于开发或只是玩玩,由单节点 ZooKeeper 集群支持的单代理 Kafka 集群可以正常工作。
最后,如果您有多个设备使用同一个主题,您必须决定是否希望它们接收相同的消息,或者是否希望它们分担负载。如果是第一种情况,您需要确保它们作为两个不同的消费者群体进行消费。对于后者,你需要确保他们在同一个消费者组中,这样他们就不会收到相同的消息。
要了解更多信息,请查看 Kafka 的 Introduction 文档。