Pgbouncer:使用 SO_REUSEPORT 时,同一主机上的多个实例接收相同的 TCP 连接

Pgbouncer:使用 SO_REUSEPORT 时,同一主机上的多个实例接收相同的 TCP 连接

我能够pgbouncer在单个 VM (CentOS 7.0) 上使用 Linux 内核功能在两个不同的 TCP 套接字 (我相信) 上监听同一端口 (6432),从而为数据库连接池设置两个实例SO_REUSEPORT。根据文档,内核应该在两个套接字之间进行负载平衡,并一次将连接发送到其中一个套接字,但是在我的例子中,在 pgbouncer 日志 (单独的文件) 中,我看到两个实例都接收到相同的连接。

我已经看到 TCP 连接分配基于某种哈希算法,该算法采用 IP/端口组合进行路由。我是否需要以某种方式区分传入连接以实现路由到单个套接字的预期行为?为了进行测试,我使用了psql来自另一台虚拟机的客户端。

更新

尽管两者都接收到尝试登录 pgbouncer其中只有一个与数据库建立连接。这是正常现象吗?

相关内容