Apache kafka MSK Kafka:请解释为什么ZookeeperConnectString列出了多个端点,以及我应该如何使用它们
如果运行以下aws命令,将获得msk kafka群集详细信息:Apache kafka MSK Kafka:请解释为什么ZookeeperConnectString列出了多个端点,以及我应该如何使用它们,apache-kafka,apache-zookeeper,aws-msk,Apache Kafka,Apache Zookeeper,Aws Msk,如果运行以下aws命令,将获得msk kafka群集详细信息: aws kafka list-clusters 这将返回如下内容: { "ClusterInfoList": [ { "BrokerNodeGroupInfo": { ...}, "ClusterArn": "arn:aws:kafka:us-west-2:000000000000000:c
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
命令中使用此选项创建主题或生成主题时,如果我只使用其中一个端点,则其效果相同
我可以在应用程序中只使用一个端点吗?或者我应该在我的producer配置中使用这三个选项。若然,原因为何?仅使用其中一种会产生什么影响?- 这些不是代理,而是不同的zookeeper服务器,它们构成了Kafka集群的代理
- 您可以只使用其中一个,但这意味着必须运行特定的zookeeper才能使命令成功
- 为了在客户端启动时实现高可用性和容错性,您应该使用所有这些选项,以避免您刚才在配置上设置的zookeeper停止(而其他选项仍在运行)的情况 设置所有这些选项可以保证(如果仲裁正常)kafka命令将成功执行,即使某些zookeeper服务器不活动
为了获得可靠的ZooKeeper服务,您应该在 被称为集合的星团。与大多数合奏者一样长 启动后,服务将可用。因为动物园管理员需要一个 大多数情况下,最好使用奇数台机器。例如 有了四台机器,动物园管理员只能处理一台机器的故障 机器;如果两台机器出现故障,其余两台机器不会出现故障 占多数。然而,有了五台机器,动物园管理员就可以 处理两台机器的故障