在docker上添加MongoDB Sink连接器?



我有一台Ubuntu机器,为了运行Confluent Platform和docker,我遵循了以下步骤。

https://docs.confluent.io/platform/current/quickstart/ce-docker-quickstart.html

我可以生成和订阅消息。

我正在尝试添加一个MongoDB Sink Connector,以便与mongo数据库同步数据。

  1. 我已经下载了这个zip文件https://www.confluent.io/hub/hpgrahsl/kafka-connect-mongodb

  2. 我已经用正确的mongo端点编辑了etc/MongoDbSinkConnector.properties文件

  3. 我已经上传了zip到我的Ubuntu机器

  4. 我创建了一个文件Dockerfile,内容如下

    FROM confluentinc/cp-kafka-connect-base
    COPY hpgrahsl-kafka-connect-mongodb-1.4.0.zip /tmp/hpgrahsl-kafka-connect-mongodb-1.4.0.zip
    RUN confluent-hub install --no-prompt /tmp/hpgrahsl-kafka-connect-mongodb-1.4.0.zip
    
  5. 我已经执行了以下命令docker build . -t my-custom-image:1.0.0

    Sending build context to Docker daemon  15.03MB
    Step 1/3 : FROM confluentinc/cp-kafka-connect-base
    ---> 8fe065fffe44
    Step 2/3 : COPY hpgrahsl-kafka-connect-mongodb-1.4.0.zip /tmp/hpgrahsl-kafka-connect-mongodb- 
    1.4.0.zip
    ---> Using cache
    ---> ed2e4ec7ff97
    Step 3/3 : RUN confluent-hub install --no-prompt /tmp/hpgrahsl-kafka-connect-mongodb-1.4.0.zip
    ---> Using cache
    ---> 034f82e2e136
    Successfully built 034f82e2e136
    Successfully tagged my-custom-image:1.0.0
    

我错过了什么吗?我的mongo没有得到更新

我也必须编辑docker-compose.yml吗?

我如何调试这个连接器,它有日志吗?

当你在Docker(包括cp-kafka-connect-base)镜像下运行Kafka Connect时,它通常处于分布式模式。要在这种模式下创建连接器配置,您需要使用REST调用;它不会从平面文件加载配置(根据独立模式)。

你可以启动你已经创建的容器,然后用一个REST调用手动创建连接器,或者你可以自动创建这个REST调用——这里有一个在Docker Compose中这样做的例子:

kafka-connect-01:
image: confluentinc/cp-kafka-connect-base:6.2.0
depends_on:
- kafka
ports:
- 8083:8083
environment:
CONNECT_BOOTSTRAP_SERVERS: "kafka:29092"
[…]
command: 
- bash 
- -c 
- |
#
echo "Installing connector plugins"
confluent-hub install --no-prompt hpgrahsl/kafka-connect-mongodb:1.4.0
#
echo "Launching Kafka Connect worker"
/etc/confluent/docker/run & 
#
echo "Waiting for Kafka Connect to start listening on localhost ⏳"
while : ; do
curl_status=$$(curl -s -o /dev/null -w %{http_code} http://localhost:8083/connectors)
echo -e $$(date) " Kafka Connect listener HTTP state: " $$curl_status " (waiting for 200)"
if [ $$curl_status -eq 200 ] ; then
break
fi
sleep 5 
done
echo -e "n--n+> Creating connector"
curl -s -X PUT -H  "Content-Type:application/json" http://localhost:8083/connectors/mongo-connector/config 
-d '{
[… connector JSON config goes here …]
}'
sleep infinity

引用:

  • https://rmoff.net/2018/12/15/docker-tips-and-tricks-with-kafka-connect-ksqldb-and-kafka/
  • https://developer.confluent.io/learn-kafka/kafka-connect/docker/

相关内容

  • 没有找到相关文章

最新更新