Distributed mode下Kafka Connect启动流程详解
Kafka Connect有两种启动模式:standalone mode和Distributed mode。standalone mode一般用于开发和测试的时候。而生产部署就需要使用Distributed mode,在多个节点部署Kafka Connect,组成一组Kafka Connect集群,将Connectors和Tasks分布到多台机器运行。这篇文章将详细讲解,在Distributed mode方式下Kafka Connect的启动过程。
启动命令与配置
Kafka Connect在Distributed mode下,部署方式也很简单。可通过手动下载confluent安装部署压缩包来部署。
bootstrap.servers=127.0.0.1:9092 // kafka connect依赖的kafka集群的主机和端口配置,多个用,分隔
group.id=my-group-id // 相同组的Kafka Connect配置同一id,与consumer group一样概念
// source connector和sink connector消息key,value序列化方式
key.converter=io.confluent.connect.avro.AvroConverter
value.converter=io.confluent.connect.avro.AvroConverter
// schema registry地址,虽然不是必须,但是使用schema registry更方便
key.converter.schema.registry.url=http://localhost:8081
value.converter.schema.registry.url=http://localhost:8081
// kafka connect内部需要用到的三个topic
config.storage.topic=my-connect-configs
offset.storage.topic=my-connect-offsets
status.storage.topic=my-connect-statuses
config.storage.replication.factor=1
offset.storage.replication.factor=1
status.storage.replication.factor=1
// kafka connect内部信息保存到kafka时消息的序列化方式
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
// 指定kafka connect加载的connector插件路径
plugin.path=/home/admin/kafkaConnect/plugins
一般kafka connect只配置上面的参数就足够。在一个节点上执行如下命令即可。
connect-distributed config.properties
在其他节点部署同一组Kafka Connect,登录到相应节点执行同样命令步骤即可。
connect-distributed脚本
Kafka Connect分布式模式的启动命令connect-distributed
是一个bash脚本,内容如下:
if [ $# -lt 1 ];
then
echo "USAGE: $0 [-daemon] connect-distributed.properties"
exit 1
fi
# 获取connect-distributed所在目录名
base_dir=$(dirname $0)
# java_base_dir 指向confluent目录下share/java目录
# 该目