Flink CDC中有没有遇到程序停了,pg插槽的状态还是激活,再重启程序说插槽被激活?
是可能会遇到这个情况的:
Flink CDC程序监听Postgres复制插槽状态时出现异常停止。
但Postgres端,该插槽状态并没有被正确地从'active'改为'standby'。
这样一来,下次启动CDC程序时,就会报错说该插槽还在'active'状态了。
这主要是因为:
Flink程序Crash后,没有机会将插槽状态从Postgres端正确切换为'standby'。
Postgres默认一段时间内,插槽保持'active'状态以保证数据不丢失。
为了解决这个问题,可以:
重启Postgres数据库,清理未使用的插槽
设置插槽的max_slot_age让它更快过期
Flink程序增加超时重试机制,多次尝试将插槽切换为'standby'
优化程序稳定性,减少意外Crash的 possibilities
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。