3

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

从我读到的内容来看,我不能确定工作人员之间是否会进行直接通信(比如一个工作人员使用 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.

关于工人如何以及为什么(如果他们这样做)相互沟通的任何细节?

4

1 回答 1

6

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

Connect 允许您使用任何工作人员的 REST API 来创建/更新/删除连接器,但在幕后,它将请求转发给“领导”工作人员。

这在文档的REST API 部分中进行了描述:

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

于 2019-11-07T13:55:27.063 回答