ticdc sink 到 kafka,分发器和生产者batch.size参数咨询

tidb、ticdc版本:5.0

问题1:

# 对于 MQ 类的 Sink,可以通过 dispatchers 配置 event 分发器
# 支持 default、ts、rowid、table 四种分发器

kafka partition为1,有3个事务变更,写到kafka只有1条消息,我理解应该有3条消息。ticdc分发到kafka,只会按照以上四种分发器分发,和事务没关系,可以这么理解吗?

问题2:
ticdc文档没有提kafka batch.size参数,我想了解这个参数的值是怎么规定的?

期待大佬们的答复,非常感谢!

问题2是个文档新增需求:

可以到以下链接提交:https://asktug.com/c/advice-feedback/document

文档新增需求

如果这是个 文档新增需求 ,请按照下方模板提交,以便于我们更快了解到你的需求,进行优化:

  • 需求类型:新增文档
  • 需求背景:比如缺少哪部分文档,对使用有什么影响
  • 期望增加哪些组件或者功能的文档,加到现有文档的哪个位置
1 个赞

来自 @xfworld 的回复:
事务是一个,还是3个?如果kafka 只有一个消息,说明就是 一个事务
cdc 是按照事务的逻辑,提取 变动信息

1 个赞

3个事务。

1 个赞

具体需要参考文档
https://docs.pingcap.com/zh/tidb/stable/ticdc-open-protocol#协议约束

我再完善下问题:同一张表,比如执行了如下sql,kafka中收到了1条消息,而不是我预期的3条消息。

#sql,id是主键
SET autocommit = 0;
update t1 set age = 11 where id = 1;
COMMIT;

SET autocommit = 0;
update t1 set age = 18 where id = 2;
COMMIT;

SET autocommit = 0;
update t1 set age = 19 where id = 3;
COMMIT;

问题2,也帮忙解答下吧 :pray:

@Lucien 帮忙看一下~

还是会和事务有关的,是严格按照事务一致性同步的。https://docs.pingcap.com/zh/tidb/stable/ticdc-overview#sink-支持

这个参数有默认配置和相关介绍,你了解的应该是 max-batch-size 参数

https://docs.pingcap.com/tidb/stable/manage-ticdc

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