数据库重启导致 CDC 中间件无法继续受到 CDC 消息该如何处理?

2021-06-24 19:09:20 +08:00
 SachinBeyond

( 1 )贵公司使用的 cdc 开源框架是哪个 canal /debezium? (2)贵公司的业务场景是怎样的 ( 3 )我们公司用到的是 Debezium,目前遇到几个问题,其中有一个问题:Debezium 提供了一个 EmbeddedEngine,这个 Engine 的工作流程可以大致简单描述未

run (){

  step1:Engine 内部会 启动一个线程 A,连接 mysql 数据库 读取 binlog 日志,将读取到的数据放置到某一个队列中

 step2:
  while(xxxx){
       data=queue.take();
       //交给项目的业务类处理
  }

}

问题:重启了 mysql 服务器之后,线程 A 抛出了异常导致 无法继续从 mysql 服务器读取 binlog 日志。 然后这个时候 Engine 感知不到,就会一直阻塞在 take 处。

然后我们的业务代码就收不到 CDC 消息了,这个该如何处理?

640 次点击
所在节点    问与答
3 条回复
liprais
2021-06-24 19:13:16 +08:00
跟着重启不就完了
你更应该解决的是为啥数据库重启了你不知道
SachinBeyond
2021-06-24 21:19:34 +08:00
@liprais 那个线程抛出的异常我捕捉不到,导致我这边都不知道数据库重启了。业务组那边说有几个单子没有收到 cdc 消息,然后检查日志才发现是数据库被人重启了
liuhouer
2021-06-24 21:58:02 +08:00
flinkx 支持按照时间点抓取 cdc 变更

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/785609

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX