Kafka Connect - 工作人员是否需要相互直接沟通

Yan*_*ick 2 apache-kafka docker apache-kafka-connect nomad

我的目标是使用容器部署 Kafka 连接连接器(s3 接收器),因此了解有关工作人员可能会或可能不会直接相互通信的详细信息非常重要。

从我读到的内容来看,我无法确定工作人员之间是否会进行直接通信(例如一名工作人员使用 REST 与另一名工作人员交谈,或其他)。

我一开始认为,当我使用 REST 更新配置时,配置更改是使用 connect_config 内部主题和/或使用 Kafka 消费者协调器传播的。

但从我读到的:

rest.advertised.host.name
If this is set, this is the hostname that will be given out to other workers to connect to.
Run Code Online (Sandbox Code Playgroud)

有关工人如何以及为什么(如果这样做)彼此沟通的任何详细信息?

Mic*_*son 6

是的,在分布式模式下运行时,工作人员必须能够连接到彼此的 REST API。

Connect 允许您使用任何 worker 的 REST API 来创建/更新/删除连接器,但是在幕后,它会将请求转发给“leader” worker。

文档中的REST API 部分对此进行了描述:

REST API 不仅被用户用来监控/管理 Kafka Connect。它还用于 Kafka Connect 跨集群通信。在追随者节点 REST API 上收到的请求将转发到领导者节点 REST API。如果给定主机可达的 URI 与其侦听的 URI 不同,则配置选项 rest.advertised.host.name、rest.advertised.port 和 rest.advertised.listener 可用于更改 URI将被跟随者节点用于与领导者连接