同一台机器上的 Postgres Patroni 和 etcd

Postgres Patroni and etcd on the Same Machine

假设我有 2 个 postgres 服务器(1 个主服务器和 1 个从服务器)并且我使用 Patroni 实现高可用性

1) 打算三机etcd集群。将 2 台 postgres 机器也用于 etcd + 另一台服务器是否可以,或者最好使用 Postgres 未使用的机器?

2) 在不使用 pgpool 的情况下,将读取请求定向到从属设备并将写入请求定向到主设备有哪些选择?

谢谢!

  1. 是的,在两台PostgreSQL机器上运行etcd是最佳实践。

  2. 唯一安全的方法是在您的应用程序中。必须教导应用程序从一个数据库连接读取并写入另一个数据库连接。

    没有安全的方法来区分书面查询和非书面查询;考虑

    SELECT delete_some_rows();
    

    应用程序还必须知道更改不会立即在副本上可见。

    流式复制在扩展方面的用途有限...