【问题标题】:Debezium is very slow, how to improve?Debezium很慢,如何改进?
【发布时间】:2021-08-30 05:28:40
【问题描述】:

第一次使用 Debezium,我在 debezium 中每 MINUTE 只收到大约 1000 条消息(与在线基准相比非常慢)。 Kafka connect/MySQL/Kafka Broker 没有节流,不确定我在这里做什么。我将在此处发布配置以供参考。

Kafka-Connect Worker 的配置:

-e CONNECT_GROUP_ID="quickstart" \
-e CONNECT_CONFIG_STORAGE_TOPIC="quickstart-config" \
-e CONNECT_OFFSET_STORAGE_TOPIC="quickstart-offsets" \
-e CONNECT_STATUS_STORAGE_TOPIC="quickstart-status" \
-e CONNECT_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_INTERNAL_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_INTERNAL_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_REST_ADVERTISED_HOST_NAME="localhost" \
-e CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1\
-e CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1\
-e CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1\```


Config of Kafka Debezium MySQL Connector 

我使用 Kafka Debezium MySQL 连接器的所有默认配置

【问题讨论】:

  • 请同时发布您的 Debezium 连接器配置。
  • 请更新您的问题并提供有关该问题的更多详细信息。

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


【解决方案1】:

最好的办法是使用Avro Serialization 重新配置连接器,以减小消息的大小并跟踪架构更改。这应该会给您带来非常显着的改进。

Avro 二进制格式紧凑且高效。 Avro 架构成功了 可以确保每条记录都具有正确的结构。 Avro的 模式进化机制使模式能够进化这是 Debezium 连接器必不可少,它动态生成每个 记录的模式以匹配数据库表的结构 改变了。

要查看在您的情况下从每条消息中删除架构的差异,如果没有 Avro 并设置架构注册表,请将下面的设置设置为 false。不要在生产中以这种方式使用它。

默认行为是 JSON 转换器包含记录的 消息模式,这使得每条记录都非常冗长。 如果您希望使用 JSON 序列化记录,请考虑设置 false 的以下连接器配置属性: key.converter.schemas.enable value.converter.schemas.enable。 将这些属性设置为 false 会从每条记录中排除详细架构信息。

另见:"Kafka Connect Deep Dive – Converters and Serialization Explained"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2011-06-14
    • 2018-03-03
    • 1970-01-01
    • 2018-03-29
    • 2023-03-13
    相关资源
    最近更新 更多