开发者社区> 问答> 正文

canal 运行发生ack错误

canal运行发生ack错误: ack error , clientId:1001 batchId:261365 is not exist , please check。 这个应该是服务器端instance重启导致。现在服务器端的配置为: canal.instance.get.ddl.isolation = false ################################################# ######### destinations ############# ################################################# canal.destinations= db9002

conf root dir canal.conf.dir = ../conf

auto scan instance dir add/remove and start/stop instance canal.auto.scan = false canal.auto.scan.interval = 5 canal.instance.global.mode = spring canal.instance.global.lazy = false

请问instance为什么会发生重启? 怎样能控制服务端的instance不发生重启?

原提问者GitHub用户cshb2018

展开
收起
Java工程师 2023-05-08 19:21:02 146 0
2 条回答
写回答
取消 提交回答
  • 遇到ack异常时,重新rollback一下再来一次就可以了,看一下example的样例工程

    原回答者GitHub用户agapple

    2023-05-09 19:34:57
    赞同 展开评论 打赏
  • 根据提供的信息,可以初步判断是Canal Server重启导致了该问题。Canal的instance重启可能是由于Canal Server进程重启、Canal配置文件修改重启、Canal实例配置修改重启等原因导致。

    为了控制服务端的instance不发生重启,可以考虑以下几个方面:

    1、检查Canal Server是否存在异常,例如内存泄漏、CPU占用过高、网络异常等情况,及时排查并修复问题,避免Canal Server进程重启。

    2、避免在Canal配置文件中频繁修改instance相关配置,如instance.filter、instance.parser、instance.tsdb等等,以免重启Canal Server进程。

    3、如果需要修改instance的配置,可以使用Canal Admin进行修改,而不是直接修改Canal配置文件。Canal Admin提供了Web UI和RESTful API等方式,支持动态修改instance的配置,不需要重启Canal Server进程。

    4、如果确实需要重启Canal Server进程,可以考虑使用Canal Supervisor进行管理,Canal Supervisor提供了进程监控、自动重启等功能,可以保证Canal Server进程的稳定运行。

    总之,保证Canal Server进程的稳定运行是避免instance重启的关键。此外,使用Canal Admin和Canal Supervisor进行管理也是控制instance重启的有效手段。

    2023-05-09 08:04:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载