使用debezium/connect-Docker映像时,不会为我的表创建Kafka主题。以下是我如何启动容器:
docker run -it --rm --name debezium -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my-connect-configs
-e OFFSET_STORAGE_TOPIC=my-connect-offsets -e BOOTSTRAP_SERVERS=192.168.56.1:9092
-e CONNECT_NAME=my-connector -e CONNECT_CONNECTOR_CLASS=io.debezium.connector.postgresql.PostgresConnector
-e CONNECT_TOPIC_PREFIX=my-prefix -e CONNECT_DATABASE_HOSTNAME=host.docker.internal -e CONNECT_DATABASE_PORT=5432
-e CONNECT_DATABASE_USER=postgres -e CONNECT_DATABASE_PASSWORD=root -e DATABASE_SERVER_NAME=mydb
-e CONNECT_DATABASE_DBNAME=mydb -e CONNECT_TABLE_INCLUDE_LIST=myschema.my_table -e CONNECT_PLUGIN_NAME=pgoutput
debezium/connect
我尝试过使用CONNECT__
而不是CONNECT_
,但我得到了相同的结果。如果我使用API:,则不会创建表的主题
curl -H 'Content-Type: application/json' 127.0.0.1:8083/connectors --data '
{
"name": "prism",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"topic.prefix": my-connector",
"database.hostname": "host.docker.internal",
"database.port": "5432",
"database.user": "postgres",
"database.password": "root",
"database.server.name": "mydb",
"database.dbname" : "mydb",
"table.include.list": "myschema.my_table",
"plugin.name": "pgoutput"
}
}'
创建由CONFIG_STORAGE_TOPIC
和OFFSET_STORAGE_TOPIC
指定的主题my-connect-configs
和my-connect-offsets
。
http://localhost:8083/connectors/my-connector/status
显示:
{"name":"my-connector","connector":{"state":"RUNNING","worker_id":"172.17.0.3:8083"},"tasks":[{"id":0,"state":"RUNNING","worker_id":"172.17.0.3:8083"}],"type":"source"}
根据这个问题,我可以在使用bin/connect-standalone.sh
而不是Docker映像时创建一个主题。
自动主题创建已启用,我在日志中没有看到任何错误/警告。
- 检查kafka连接容器日志,当它试图将数据插入kafka集群时,会显示什么消息
- 您需要在kafkabroker配置中启用自动主题创建,请签出此文档
- 请确保数据库中存在表,并且
"table.include.list": "myschema.my_table",
是正确的。为了进行实验,您可以临时删除此配置
您可以使用redpanda团队创建的UI平台来管理主题、代理和kafka连接配置-此处
问题是底层表没有任何数据,因此没有创建主题。如果在连接器启动时表中有数据,或者在连接器运行时添加了行,则会创建该主题。