出现异常:在使用 RollingUpdate 部署策略在 kubernetes 上部署服务时,“复制槽“XXX”对于 PID XXX` 处于活动状态

时间:2021-02-03 14:49:10

标签: postgresql kubernetes apache-kafka apache-kafka-connect debezium

我有一个应用程序,它使用 debezium-postgres 连接器从 postgres 在 kafka 上发布事件。如果 kubernetes 部署策略为 Recreate,则应用程序工作正常。 但是在使用 RollingUpdate 部署策略时抛出异常

  • 异常 replication slot "XXX" is active for PID XXX,因为较旧的 pod 正在使用相同的复制槽

应用程序正在使用 PGOUTPUT debezium 插件和一些 postgres 配置如下:

max_wal_senders = 4
max_replication_slots = 4
wal_level = logical
wal_receiver_timeout = 300s
wal_sender_timeout = 300s

是否有任何配置可能有助于解决此问题?

1 个答案:

答案 0 :(得分:1)

不能使用相同的复制槽启动两个 WAL 发送方进程。

如果您需要两个客户端来运行逻辑解码,请创建两个复制槽。否则,请确保在连接之前停止使用复制槽的所有客户端。