我正在使用sql-server kafka-connect和debezium来监视sql服务器数据库,但是当我发布并运行我的worker时,主题已经以名称{server_name}创建。schema_name}。{table_name} 默认分区=1 & replication=1,即使我在"bootstrap.servers"参数中指定了两个代理。如何手动更改表主题的分区和复制,或者事先在辅助角色/连接器配置中指定?此外,不同的主题可能具有不同的分区和复制。
有 2 个选项:
- 您可以在使用所需的分区数和复制因子启动 debezium 连接器之前为每个表创建主题。这是可能的,因为数据库服务器、模式和表名是已知的(在配置中指定(。
-
即使连接器正在运行,也只需修改主题即可增加分区数和复制因子。例如。
./kafka-topics.sh --zookeeper localhost:2181 --alter --topic server.schema.table --partitions 5
请注意,在此之前的所有消息都将在一个分区中,而新记录将被分发(基于 kafka 键哈希(。
本文档 https://debezium.io/documentation/reference/1.0/install.html#_configuring_debezium_topics 介绍如何配置主题。
请注意,当主题是自动创建的(这是 Kafka 代理设置(时,它们将使用 Kafka 代理的默认主题设置。
因此,您应该提前手动创建它们,或者更改 Kafka 代理默认值或使用kafka-topics.sh
工具来更改复制。