我运行Kafka Connect Distributed worker:
~ /usr/bin/connect-distributed /etc/schema-registry/connect-avro-distributed.properties
我配置了Kafka Connect连接器:
~ curl -X PUT -H "Content-Type: application/json" --data-binary "@my_s3_sink_1.json" localhost:8083/connectors/my-s3-sink-1/config | jq '.'
一切都很好。我可以查询连接器状态,任务状态,所有我的主题数据都像我期望的那样被写入S3。一切都很完美。它运行了几个星期没有问题。所有数据都完美地汇入S3。
然后我的Kafka Connect Distributed工作人员被杀死了。所以我在完全相同的工作服务器上重新启动它。
~ /usr/bin/connect-distributed /etc/schema-registry/connect-avro-distributed.properties
我的所有Kafka Connect连接器都不见了:
~ curl localhost:8083/connectors
[]
为什么!?!?!?据我所知,Kafka Connect工作人员是无国籍人。所有连接器配置和状态都存储在Kafka中。我应该可以毫无问题地停止并重新启动工作进程。那没用。我的连接器似乎已经消失,状态似乎消失了。
我可以看到三个Kafka Connect主题:
~ /usr/bin/kafka-topics --zookeeper localhost:2181 --list
(other topics)
connect-configs
connect-offsets
connect-statuses
如果我尝试查看这些主题,它们似乎是空的:
~ sudo /usr/bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic connect-configs --from-beginning
(nothing)
~ sudo /usr/bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic connect-offsets --from-beginning
(nothing)
这是一个问题!我需要这个Connect系统能够处理重新启动的工作进程。
我仍然有JSON配置文件。我可以轻松地重新加载连接器的配置,但是它将在偏移0处重新启动。我希望它只是恢复而不会丢失状态。
仅供参考,我在三台服务器Debian Jessie(8)集群上运行Confluent Platform v3.2.1。