怎么使用golang来获取ticdc的数据变化信息

怎么使用golang自己写代码来获取ticdc的变化数据?现在看文档上介绍都是使用cdc cli命令行来管理。

在Golang中,要获取TiCDC的数据变化信息,你需要使用TiCDC的Open API。以下是一个简单的例子,展示如何使用Golang发送HTTP请求并获取TiCDC的数据变化信息。

首先,确保你已经启动了TiCDC服务,并且知道API的端点。

1 个赞

调Open API TiCDC OpenAPI v2 | PingCAP 文档中心

2 个赞

调用cdc的open api

1 个赞

不熟悉G语言,其实这个都是相通的,都是调用其对外的API获取信息

TiCDC 提供 OpenAPI 功能,你可以通过 OpenAPI v2 对 TiCDC 集群进行查询和运维操作。OpenAPI 的功能是 cdc cli 工具的一个子集。

1 个赞

openapi好像也只是控制功能,没有获取变化数据以及自己处理变化数据的功能

我是想自己处理变化的数据,自己决定怎么应用这些变化的数据,openapi中好像没有这些功能

那你就写到Kafak进行消费嘛

1 个赞

是要自己写个sink吗,没必要吧,还是先sink到kafka,再从kafka读更靠谱

1 个赞

写到kafka主要还是得配置kafka,环境里面没有kafka。所以想自己来接收变化的数据。

主要是ticdc自己应用数据到数据库的功能不太好用,很容易就出错了,比如insert数据的时候,如果下游数据库已经有id相同的记录,就会失败了,就停止了。

cdc支持可重入同步,你说的这个现象具体报错是什么?

比如cdc过程中,tidb数据库中产生了一条记录,比如id为5,但是下游tidb数据库中已经有一条id为5的记录了,此时cdc就会执行失败,导致整个任务就会失败了。

go可以和tidb的api进行交互

这种场景一般不会出现这个问题,集群的 ticdc 的safe_mode 是多少,如果开启了的话会通过转为 replace实现可重入写入下游的。