4

我在数据中心有一个 Kafka 集群。一群可能通过 WAN(甚至互联网)进行通信的客户端将向/从集群发送/接收实时消息。

我从Kafka 的文档中读到:

...尽管高延迟链接需要 TCP 调整,但可以通过 WAN 读取或写入远程 Kafka 集群。

通常不建议运行跨多个数据中心的单个 Kafka 集群,因为这会导致 Kafka 写入和 Zookeeper 写入的复制延迟非常高,并且如果网络分区,Kafka 和 Zookeeper 都将不可用。

根据我在这里这里的理解:

  • 通过 WAN 进行生产不需要 ZK 并且没问题,只需注意调整 TCP 以实现高延迟连接。伟大的!查看。
  • 高级消费者 API 需要 ZK 连接。

那么客户端通过 WAN 读取/写入 Kafka 是否受到上述粗体集群的相同限制?

4

1 回答 1

2

您强调的陈述主要针对 Kafka/zookeeper 集群之间的内部通信,其中在网络分区期间会发生邪恶的事情,这在 WAN 中更为常见。

生产者是隔离的,如果存在网络问题,应该能够根据您的设置进行缓冲/重试。

正如您所指出的,高级消费者更棘手,因为需要连接到 zookeeper。在这里,当发生断开连接时,将进行重新平衡,并且消息被重复的可能性更高。

请记住,生产者需要能够访问每个 Kafka 代理,而消费者需要能够访问所有 Zookeeper 节点和 Kafka 代理,负载均衡器将无法工作。

于 2015-01-27T06:46:36.200 回答