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
遇到ack异常时,重新rollback一下再来一次就可以了,看一下example的样例工程
原回答者GitHub用户agapple
根据提供的信息,可以初步判断是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重启的有效手段。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。