天才选手马冬冬 2025-01-06 13:45 采纳率: 0%
浏览 15

debezium的消息体过大

你好,大神我想问一下,我的dezezium报错org.apache.kafka.common.errors.RecordTooLargeException: The message is 1068488 bytes when serialized which is larger than 1048576, which is the value of the max.request.size configuration。我在kafka的broker配置文件中设置了配置了max.message.bytes=20971520,replica.fetch.max.bytes=31457280,debezium连接器配置文件也设置了max.message.bytes=20971520, "producer.max.request.size": "20971520",请问我是不是还得再kafka-connect里面在配置

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2025-01-06 13:45
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    您遇到的问题是因为Kafka消息大小超过了配置的最大限制。您已经在Kafka broker和Debezium连接器配置文件中调整了一些参数,但可能还需要确保所有相关的配置项都被正确设置。以下是解决此问题的步骤:

    1. 检查Kafka Broker配置:

      • 确保max.message.bytes被设置为大于消息大小的值。
      • 您已经设置为20971520(20MB),这看起来是正确的。
    2. 检查Kafka Connect配置:

      • 确保在Kafka Connect配置中设置了producer.max.request.sizeconsumer.fetch.max.bytes以适应较大的消息。
      • 您已经在Debezium连接器配置文件中设置了"producer.max.request.size": "20971520",这是正确的。
    3. 重启相关服务:

      • 修改配置后,需要重启Kafka broker和Kafka Connect服务,以便新的配置生效。
    4. 检查其他可能的影响因素:

      • 确保没有其他地方限制了消息大小,例如Kafka客户端的配置。

    解决方案

    1. Kafka Broker配置

    确保在server.properties文件中设置以下参数:

    # 设置最大消息大小
    max.message.bytes=20971520
    # 设置副本获取的最大字节数
    replica.fetch.max.bytes=31457280
    

    2. Kafka Connect配置

    在Debezium连接器配置文件中设置以下参数:

    {
        "name": "your-connector-name",
        "config": {
            "connector.class": "io.debezium.connector.mysql.MySqlConnector",
            "tasks.max": "1",
            "database.hostname": "your-database-hostname",
            "database.port": "3306",
            "database.user": "your-database-user",
            "database.password": "your-database-password",
            "database.server.id": "184054",
            "database.server.name": "dbserver1",
            "database.include.list": "your_database_name",
            "table.include.list": "your_table_name",
            "database.history.kafka.bootstrap.servers": "localhost:9092",
            "database.history.kafka.topic": "schema-changes.your_database_name",
            "producer.max.request.size": "20971520"
        }
    }
    

    3. 重启Kafka服务

    重启Kafka broker和Kafka Connect服务:

    # 重启Kafka broker
    sudo systemctl restart kafka
    
    # 重启Kafka Connect
    sudo systemctl restart connect
    

    通过以上步骤,您应该能够解决RecordTooLargeException的问题。如果问题仍然存在,请检查是否有其他配置或网络问题影响了消息大小的限制。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月6日