在kafka connect中,一个leader节点通常做什么?
In kafka connect, what does a leader node usually do?
我想在分布式模式下设置一个kafka-connect集群。
让我假设这里有 4 个节点:
node1
node2
node3
node4
而且我想将 node1
设置为 ADVERTISED_HOST
,我猜这是设置为领导者。也将 node1
设置为 REST_HOST
。
所以,当我 运行 docker 容器时,我为每个节点设置环境变量,如下所示
-e CONNECT_REST_HOST_NAME="node1" \
-e CONNECT_REST_PORT="8083" \
-e CONNECT_REST_ADVERTISED_HOST_NAME="node1" \
-e CONNECT_REST_ADVERTISED_PORT="8083" \
然后,我可以从日志中看到像 leaderUrl='http://node1:8083/'
这样的短语:
[2021-04-28 18:24:09,320] INFO Joined group and got assignment: Assignment{error=0, leader='connect-1-303380fb-90ff-4c00-a302-a57ee8b4a0e4', leaderUrl='http://node1:8083/', offset=93, connectorIds=[], taskIds=[test5-0, test5-2]} (org.apache.kafka.connect.runtime.distributed.DistributedHerder)
在这种情况下,我的观点是,
- 我读到文档说 kafka-connect 集群中没有领导者,但我认为这
CONNECT_REST_ADVERTISED_HOST_NAME
将一个节点设置为领导者;正如您在日志中看到的那样。我错了吗?如果我误解了,CONNECT_REST_ADVERTISED_HOST_NAME
的确切作用是什么?
- 我认为
CONNECT_REST_HOST_NAME
只让一个节点获得所有请求。但是当我向 node2 或 node3 或 node4 请求时,它们运行良好..!所以我想知道这个变量的确切作用是什么。
- 最后,如果集群中有leader,leader节点通常做什么?
所有节点都是平等的,但它们需要一种协议来相互分发任务和报告状态,或者至少向 /status 端点上的请求客户端报告状态。当任务分配发生时,领导只是暂时的——你不希望一台服务器说“处理任务 1,2”而另一台服务器说“2,3,4”
作为一个集群,节点需要知道如何在网络上相互引用,这就是广告属性的目的。其他两个属性设置 logs/responses 中的名称以及实际绑定的服务器端口。
通告的端口通常仅在代理后才与其余端口不同
我想在分布式模式下设置一个kafka-connect集群。 让我假设这里有 4 个节点:
node1
node2
node3
node4
而且我想将 node1
设置为 ADVERTISED_HOST
,我猜这是设置为领导者。也将 node1
设置为 REST_HOST
。
所以,当我 运行 docker 容器时,我为每个节点设置环境变量,如下所示
-e CONNECT_REST_HOST_NAME="node1" \
-e CONNECT_REST_PORT="8083" \
-e CONNECT_REST_ADVERTISED_HOST_NAME="node1" \
-e CONNECT_REST_ADVERTISED_PORT="8083" \
然后,我可以从日志中看到像 leaderUrl='http://node1:8083/'
这样的短语:
[2021-04-28 18:24:09,320] INFO Joined group and got assignment: Assignment{error=0, leader='connect-1-303380fb-90ff-4c00-a302-a57ee8b4a0e4', leaderUrl='http://node1:8083/', offset=93, connectorIds=[], taskIds=[test5-0, test5-2]} (org.apache.kafka.connect.runtime.distributed.DistributedHerder)
在这种情况下,我的观点是,
- 我读到文档说 kafka-connect 集群中没有领导者,但我认为这
CONNECT_REST_ADVERTISED_HOST_NAME
将一个节点设置为领导者;正如您在日志中看到的那样。我错了吗?如果我误解了,CONNECT_REST_ADVERTISED_HOST_NAME
的确切作用是什么? - 我认为
CONNECT_REST_HOST_NAME
只让一个节点获得所有请求。但是当我向 node2 或 node3 或 node4 请求时,它们运行良好..!所以我想知道这个变量的确切作用是什么。 - 最后,如果集群中有leader,leader节点通常做什么?
所有节点都是平等的,但它们需要一种协议来相互分发任务和报告状态,或者至少向 /status 端点上的请求客户端报告状态。当任务分配发生时,领导只是暂时的——你不希望一台服务器说“处理任务 1,2”而另一台服务器说“2,3,4”
作为一个集群,节点需要知道如何在网络上相互引用,这就是广告属性的目的。其他两个属性设置 logs/responses 中的名称以及实际绑定的服务器端口。
通告的端口通常仅在代理后才与其余端口不同