如何更改"kafka connect"组件端口?

How to change the "kafka connect" component port?

在端口 8083 上,我是 运行 Influxdb,我什至在 http://localhost:8083

上获得了 GUI

现在来到kafka,这里我指的是按照https://kafka.apache.org/quickstart

的设置

通过以下命令启动文件夹 /opt/zookeeper-3.4.10 中的 zookeeper:bin/zkServer.sh start

因此 zookeeper 已启动,现在在 /opt/kafka_2.11-1.1.0 文件夹下启动 kafka 为:
bin/kafka-server-start.sh config/server.properties

创建一个名为 "test" 的主题,只有一个分区和一个副本:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

主题已创建,可以使用命令签入:
bin/kafka-topics.sh --list --zookeeper localhost:2181

到目前为止,一切都很好。

现在我需要使用“Kafka connect”组件来 import/export 数据。 所以我正在创建一个种子数据:echo -e "foo\nbar" > test.txt

现在使用“kafka connect”的连接器配置来工作: bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

在 运行 以上命令之后我得到:Address already in use

Kafka connect has stopped

我什至更改了 /opt/kafka_2.11-1.1.0/config/connect-distributed.properties 中的 rest.port=8084,这样它就不会与已经在 8083 上的 influxdb 发生冲突。我还是一样 Address already in use, Kafka connect has stopped如截图所示

更改 config/server.properties:

中的 port 定义
# The port the socket server listens on
port=9092

由于您在独立模式下使用 Kafka Connect,因此您需要更改 config/connect-standalone.properties 中的 REST 端口:

rest.port=18083

要了解有关独立与分布式的更多信息,您可以read the doc here

Kafka Standalone 模式,默认使用 Port 8084 作为 Rest API post。由于这个原因,如果其他人已经在使用该端口,则进程会抛出 BindException.

要更改上面使用的端口,请导航到 Kafka 根目录中的 config/connect-standalone.properties 文件。

添加以下键值 属性 以更改用于 Rest API 打开的端口。 (Kafka 应该默认将其包含在属性文件中,否则许多开发人员会疯狂地试图找到在独立模式下使用的端口映射)。根据需要输入不同的端口。

rest.port=11133

卡夫卡 3.0.0

由于 Kafka Connect 旨在 运行 作为一项服务,因此它还提供了一个 REST API 来管理连接器。可以使用 listeners 配置选项配置 REST API 服务器。该字段应包含以下格式的侦听器列表:protocol://host:port,protocol2://host2:port2。当前支持的协议是 http 和 https。 例如:listeners= http://localhost:8080,https://localhost:8443 默认情况下,如果未指定侦听器,则 REST 服务器 运行 使用 HTTP 协议在端口 8083 上。

更多详情:https://kafka.apache.org/documentation/#connect_rest