搭了 Postgres 流复制,主从架构,读走从库。但偶尔出现 "写完立刻读不到" 的问题,应该是复制延迟。
排查:
pg_stat_replication看replay_lag,确实有 100ms-2s 抖动。- 大事务会导致延迟突增。
- 从库 IO/CPU 慢也会拖后腿。
短期解法:写后需要立即读的场景,强制走主库("读写分离 + 关键路径走主")。
长期方案:
- 改同步复制(
synchronous_commit=on),但写性能下降。 - 用PgBouncer 配合 hint 路由。
大家主从延迟都怎么应对的?