如果运行以下aws命令,将获得msk Kafka集群详细信息:
aws kafka list-clusters
这会传回类似下列的结果:
{
"ClusterInfoList": [
{
"BrokerNodeGroupInfo": { ...},
"ClusterArn": "arn:aws:kafka:us-west-2:000000000000000:cluster/my-cluster/{guid}",
"ClusterName": "my-cluster",
"ZookeeperConnectString": "z-1.my-cluster.xyz.c5.kafka.us-west-2.amazonaws.com:2181,z-3.my-cluster.xyz.c5.kafka.us-west-2.amazonaws.com,z-3.my-cluster.xyz.c5.kafka.us-west-2.amazonaws.com"
}
]
}
请注意ZookeperConnectString是一个逗号分隔的字符串...
它真的是zookeeper(我认为zookeeper的全部意义是用一个端点来协调代理)还是一个代理列表?这正是我所怀疑的。另外,当我在-zoookeeper
命令中使用它来创建主题或生成主题时,如果我只使用一个端点,它的工作原理是一样的。
我可以在我的应用程序中只使用其中一个端点吗?或者我应该在我的生产者配置中使用所有三个端点。如果可以,为什么?只使用其中一个端点会有什么影响?
1条答案
按热度按时间eit6fx6z1#
设置所有这些参数可以保证(* 如果仲裁正常 *)即使某些zookeeper服务器不活动,您的Kafka命令也会成功。
Zookeeper多服务器设置
要获得可靠的ZooKeeper服务,您应该将ZooKeeper部署在称为集合的集群中。只要大多数集合都已启动,服务就将可用。因为ZooKeeper需要大多数,所以最好使用奇数台计算机。例如,在四台计算机中,ZooKeeper只能处理一台计算机的故障;如果有两台机器出现故障,剩下的两台机器并不构成多数。2但是,有五台机器,ZooKeeper可以处理两台机器的故障。