如何使用自动缩放组在 AWS 上部署 Kafka 连接器

How to deploy Kafka connector on AWS with auto-scale group

看起来如果我们想在分布式模式下设置 Kafka 连接器,我们需要在 CONNECT_REST_ADVERTISED_HOST_NAME 上有一个唯一的主机名。但是,如果我们使用自动缩放组在 AWS 上部署连接器,则没有已知的主机名,不确定如何进行设置?

您可以使用预创建 EC2 实例中的以下步骤实现此方案。

1。配置rest.advertised.host.name属性connect-distributed.properties文件

rest.advertised.host.name=hostname

2。创建 kafka-connect.service 个文件

nano /etc/systemd/system/kafka-connect.service

[Unit]
Description=Kakfka-connect
After=network.target

[Service]
User=ubuntu
Group=ubuntu
Environmet="KAFKA_HEAP_OPTS=-Xmx4G -Xms2G"
Environment="KAFKA_OPTS=-javaagent:/home/ubuntu/prometheus/jmx_prometheus_javaagent-0.16.1.jar=8080:/home/ubuntu/prometheus/kafka-connect.yml"
ExecStart=/home/ubuntu/kafka/kafka_2.13-2.7.0/bin/connect-distributed.sh /home/ubuntu/config/connect-distributed.properties

[Install]
WantedBy=multi-user.target

3。现在拍摄此 EC2 实例卷的快照。

4。创建启动配置

使用快照作为卷。并使用以下用户数据。

#!/bin/bash

apt-get update
apt-get -y upgrade
sed -i "s/hostname/$(hostname -I)/g" /home/ubuntu/config/connect-distributed.properties
systemctl start kafka-connect
systemctl enable kafka-connect
当新实例从 Auto-scaling 组启动时,

sed 命令将用实例的私有 IP 替换 rest.advertised.host.name 的 connect-distributed.properties 文件中的 'hostname' 字符串。