是否有等效的 Debezium 命令可以在没有 Docker 容器的情况下启动 Kafka Connect
Posted
技术标签:
【中文标题】是否有等效的 Debezium 命令可以在没有 Docker 容器的情况下启动 Kafka Connect【英文标题】:Is there a equivalent Debezium command to starting Kafka Connect without Docker container 【发布时间】:2019-10-20 06:51:22 【问题描述】:debezium kafka 连接命令是:
docker run -it --rm --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses --link zookeeper:zookeeper --link kafka:kafka --link mysql:mysql debezium/connect:0.9
是否有一种等效的方法可以不在带有标志的 docker 容器中运行以指定 zookeeper 实例和 kafka 引导服务器/代理?我的 kafka 和 zookeeper 在本地运行在我的 mac 上,但不在 docker 容器内。
谢谢
【问题讨论】:
【参考方案1】:没有“标志”,只有属性文件。 docker 映像只是在这些文件中使用变量替换。
您可以refer to the Debezium installation documentation,它只是 Kafka Connect 的一个插件,它包含在您的 Kafka 安装中。
在您的 Kafka 安装中找到 connect-standalone.properties
以开始使用。您要编辑的一个重要属性是plugin.path
,它必须是您放置 Debezium JAR 文件的完整父路径。然后在那里也配置了 Kafka
然后你会运行它来启动一个节点
connect-standalone.sh connect-standalone.properties your-debezium-config.properties
(Docker 镜像正在运行 connect-distributed.sh
,但您不需要只在 Mac 上运行集群)
【讨论】:
你能显示你的-debezium-config.properties 架构吗?这是这里吗?"connector.class": "io.debezium.connector.mysql.MySqlConnector", "tasks.max": "1", "database.hostname": "mysql", "database.port": "3306", "database.user": "debezium", "database.password": "dbz", "database.server.id": "184054", "database.server.name": "dbserver1", "database.whitelist": "inventory", "database.history.kafka.bootstrap.servers": "kafka:9092", "database.history.kafka.topic": "dbhistory.inventory", "name": "inventory-connector"
@MasterLuV connect-standalone
采用 Java 属性文件(key=value
行),而不是 JSON
@cricket_007:谢谢!我怎么知道什么是必需的属性?我在文档中看不到
@MasterLuV 在您现有的 Kafka 安装中,您可以找到记录在案的 connect-standalone.properties
。另一个属性文件与 JSON 中的属性完全相同,只是不是 JSON,每行只有 key=vaule
对。以上是关于是否有等效的 Debezium 命令可以在没有 Docker 容器的情况下启动 Kafka Connect的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Debezium 中配置 table_name => kafka 主题映射?