【问题标题】:How can we manually define topic partition and replication in kafka-conect distribution mode我们如何在 kafka-connect 分布式模式下手动定义主题分区和复制
【发布时间】:2020-04-19 02:06:37
【问题描述】:

我正在使用 sql-server kafka-connect 和 debezium 来监控 sql server 数据库,但是当我发布和运行我的工作人员时,已经创建了名为 {server_name}.{schema_name}.{table_name} 的主题默认分区 = 1 & 复制 = 1,即使我在“bootstrap.servers”参数中指定了两个代理。如何手动更改表主题的分区和复制,或者在工作/连接器配置中预先指定?此外,不同的主题可能有不同的分区和复制。

【问题讨论】:

  • 尝试更改主题创建代理设置,因为它们的默认值设置为 partitions =1 和 replication-factor = 1。
  • 但这会为所有主题保存这些参数,这些参数应该因不同的主题而有所不同@FatemaSagar

标签: sql-server apache-kafka-connect debezium


【解决方案1】:

有两种选择:

  1. 您可以在使用所需的分区数和复制因子启动 debezium 连接器之前为每个表创建主题。这是可能的,因为数据库服务器、模式和表名是已知的(在配置中指定)。
  2. 即使连接器正在运行,只需修改主题以增加分区数量和复制因子。例如。

    ./kafka-topics.sh --zookeeper localhost:2181 --alter --topic server.schema.table --partitions 5
    

    请注意,在此之前的所有消息都将在一个分区中,而新记录将被分发(基于 kafka 键散列)。

【讨论】:

    【解决方案2】:

    此文档https://debezium.io/documentation/reference/1.0/install.html#_configuring_debezium_topics 描述了如何配置主题。

    请注意,当主题被自动创建(这是 Kafka 代理设置)时,它们会使用来自 Kafka 代理的默认主题设置。

    因此您应该提前手动创建它们,或者更改 Kafka 代理默认值或使用 kafka-topics.sh 工具更改复制。

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 2017-05-27
      • 1970-01-01
      • 2019-11-30
      • 2019-05-12
      • 2019-02-03
      • 2021-12-21
      • 2017-06-11
      • 2022-01-15
      相关资源
      最近更新 更多