我在数据中心有一个Kafka集群。可以跨WAN(甚至internet)通信的一组客户端将向集群发送/接收实时消息。
我从Kafka的文件中读到:
…可以通过wan读取或写入远程kafka群集,但对于高延迟链路,tcp调优是必要的。
通常不建议运行跨多个数据中心的单个kafka群集,因为这将导致kafka写入和zookeeper写入的复制延迟非常高,并且如果网络分区不可用,kafka和zookeeper都将不可用。
据我所知:
通过广域网进行生产不需要zk,也没关系,只要注意调整tcp以获得高延迟连接即可。太好了!检查。
高级使用者api需要zk连接。
那么,客户端通过广域网读/写kafka不也受到上面粗体显示的集群的相同限制吗?
1条答案
按热度按时间tyu7yeag1#
您强调的语句主要针对kafka/zookeeper集群之间的内部通信,在这个集群中,在广域网中更常见的网络分区期间会发生邪恶的事情。
生产者是孤立的,如果有网络问题,应该能够缓冲/重试基于您的设置。
高层次的消费者更棘手,因为正如您所注意到的,他们需要与zookeeper的连接。在这种情况下,当断开连接时,会重新平衡,消息被复制的可能性更高。
请记住,生产者需要能够访问每个kafka代理,消费者需要能够访问所有zookeeper节点和kafka代理,负载平衡器无法工作。