binlog drainer写kafka日志定位

【 TiDB 使用环境】
5.7.25-TiDB-v4.0.6

【概述】:binlog架构,写kafka是报 消息体过大;fail to produce message to kafka, please check the state of kafka server"] [error=“kafka: Failed to produce message to topic feature_binlog: kafka server: Message was too large, server rejected it to avoid allocation error.”
但业务侧 写了很多日志,很难定位和限制大消息体的发生;这个drainer端报错可以更详细些吗?比如有主键或者唯一性约束的打印对应的字段值?

【背景】:做过哪些操作

【现象】:业务和数据库现象

【问题】:当前遇到的问题

【业务影响】:

【TiDB 版本】:5.7.25-TiDB-v4.0.6

【附件】:

参考下这里
相关 Message too lagre 是 Kafka 返回的。TiDB 为了保证事物的完整性并不能拆解 消息需要调整 Kafka 配置 。否则就要咱们控制 tidb 上的事物大小

修改 Kafka 配置的参考链接
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-ticdc#使用-ticdc-同步消息到-kafka-时-kafka-报错-message-was-too-large

您貌似有点误解,我知道解决修改参数可以解决;但是想定位到具体是哪个sql,那条消息;

这样可以定位到具体的数据,看是业务处理减少一条大消息;还是不能修改,才会修改kafka消息体大小

Drainer 日志里面有具体的 checkpoint TS ,可以解决 TS 来定位业务的时间点和逻辑。

可以给个例子展开说说吗?比如我从日志中查到TS是时间t0,然后去dashboard查sql吗?

hello,我查到了checkpoint,然后怎么根据checkpoint反查对应的sql呢?或者说复现

这个checkpoint和sql的执行时间是一致的吗?

是一致的,可以看一下 drainer 日志里面上一个 save point 点的 TS,然后对比一下。另外还是建议调整一下 Kafka meesage 配置。

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