Kafka 经纪人设置

Kafka broker setup

为了连接到 Kafka 集群,我得到了一组 bootstrap 服务器,其名称和端口为:

s1:90912
s2:9092
s3:9092

Kafka 和 Zookeeper 运行 在实例 s4 上。根据阅读 https://jaceklaskowski.gitbooks.io/apache-kafka/content/kafka-properties-bootstrap-servers.html,它指出:

bootstrap server is a comma-separated list of host and port pairs that are the addresses of the Kafka brokers in a "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself.

我参考了上面的 bootstrap 服务器定义,因为我试图了解 kafka 代理 s1、s2、s3 和 kafka、zookeeper 运行 在 s4 上的关系。

为了连接到 Kafka 集群,我将代理设置为 's1,s1,s3' 的 CSV 列表。当我向代理的 CSV 列表发送消息时,为了验证消息是否已添加到主题,我通过 ssh 进入 s4 框并查看有关该主题的消息。

Kafka 代理 s1、s2、s3 和 s4 之间的 link 是什么?我无法通过 ssh 连接到任何代理 s1、s2、s3,因为这些代理似乎无法使用 ssh 访问,s1、s2、s3 应该可以访问吗?

负责设置 Kafka 盒的人员已不在,我对这种配置的工作原理感到困惑。我在 s4 上搜索了代理 s1、s2、s3 的配置参考,但似乎没有任何配置。

当设置和配置 Kafka 时,是什么允许代理(在本例中为 s1、s2、s3)和 s4 之间 linking?

我在同一台服务器 s4 上启动 Kafka 和 Zookeeper。

Kafka 和 Zookeeper 也应该 运行 在 s1,s2,s3 上吗?

What is the link between the Kafka brokers s1,s2,s3 and s4?

根据关于向集群添加节点的 Kafka 文档,每个服务器必须共享相同的 zookeeper.connect 字符串并具有唯一的 broker.id 才能成为集群的一部分。

您可以通过 zookeeper-shell 使用 ls /brokers/ids 或通过 Kafka AdminClient API 或 kafkacat -L

检查集群中的哪些节点

should s1,s2,s3 be accessible?

通过 SSH?他们不一定是。

他们应该在他们的 Kafka 服务器端口上响应来自您的 Kafka 客户端计算机的 TCP 连接

Should Kafka and Zookeeper also be running on s1,s2,s3?

一个集群中不应该有 4 个 Zookeeper 服务器(只有奇数)

否则,您至少已经在这些机器上为 Kafka 提供了一些端口,因此 Kafka 应该是