postgresql - 出现异常:在使用 RollingUpdate 部署策略在 kubernetes 上部署服务时,“复制槽“XXX”对 PID XXX` 处于活动状态”
问题描述
我有一个应用程序,它使用 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
是否有任何配置可能有助于解决此问题?
解决方案
您不能使用相同的复制槽启动两个 WAL 发送方进程。
如果您需要两个客户端来运行逻辑解码,请创建两个复制槽。否则,请确保在连接之前停止使用复制槽的任何客户端。
推荐阅读
- selenium-ide - 如何在 Selinium Ide 中使用“运行”命令?
- javascript - 在单击画布的位置添加一个点
- c++ - 如何在 C++ 的输出中打印引号?
- android - ionic GeoLocation 检索地址?
- wpf - 除非检查注册表,否则如何更改 WPF 的版本?
- powershell - 新的本地用户/本地组路径?
- javascript - 无法导入和导出类
- eclipse - 尝试将 sonarlint 连接到 sonarqube 服务器时发生空指针异常
- swift - heightAnchor.constraint 不改变视图高度
- python - 带有两个数据帧的 Pandas OFFSET 和 MATCH 函数