binlog Pump grpc: received message larger than max (1387807085 vs. 1073741824)

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】v4.0.4 生产环境

【概述】 场景 + 问题概述 pump-drainer-kafka数据同步

【问题】 当前遇到的问题 grpc: received message larger than max (1387807085 vs. 1073741824)


看到官网上相关的配置,pump增加该参数max-message-size: 1610612736后,drainer任然有上述错误。
kafka的参数均已调整过,如

message.max.bytes=1610612736
replica.fetch.max.bytes=1610612736
fetch.message.max.bytes=1610612736

请帮忙分析解决~

【业务影响】 binlog无法同步到下游kafka

【TiDB 版本】 4.0.4

pump日志:

drainer日志:


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

    1. 列表条目
1 个赞

kafka最大接收我记得有限制

1 个赞

这个问题不是kafka的参数引起的,且kafka的参数比消息更大,是pump的参数引起的,但是pump的参数max-message-size,设置了没有用。官网:u6709:这个相同错误的说明,就是pump。https://docs.pingcap.com/tidb/v4.0/handle-tidb-binlog-errors#when-the-upstream-transaction-is-large-pump-reports-an-error-rpc-error-code--resourceexhausted-desc--trying-to-send-message-larger-than-max-2191430008-vs-2147483647

1 个赞

麻烦帮忙查看下报错的pump日志,修改参数重启后的日志里,记录的参数值修改生效了吗?多谢。

1 个赞

怎么确定参数有没有生效?我现在怀疑的就是参数没生效啊。

查看 pump 启动的日志信息

没有max-message-size这个参数的打印信息。


这个是启动参数

  1. 请问是什么方式部署的?单独部署还是tiup?
  2. 能否尝试在pump toml 文件中也配置下,多谢。
  3. 请问有部署 tiflash 吗?
  1. ansible转的tiup。
  2. pump 的toml中也设置过了,直接启动异常,识别不了这个参数,只能加在命令行。
  3. 没有tiflash。

应该是 drainer 的问题,git 上有这个问题的 pr fix https://github.com/pingcap/tidb-binlog/pull/1039

根据以上pr重新编译drainer后,无前面的错误,但是drainer error日志出现了新的错误,随即drainer重启


Hello~ 能否提供一下 drainer 的配置文件和上下的 log 报错信息。目前提供的日志参考信息不够,麻烦提供一下详细的文本日志。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。