gpt4 book ai didi

postgresql - 如何获取 Golang 数据库连接池来管理集群中多台主机的连接?

转载 作者:IT王子 更新时间:2023-10-29 01:58:05 25 4
gpt4 key购买 nike

我正在设置 bi-direction replication在四个 PostgreSQL 工作人员之间,我想让我的 Go 数据库连接池处理与所有四个工作人员的连接。它应该能够为它们创建多个连接,为任何给定的查询随机选择一个,并在连接断开时进行故障转移。这在 Go 数据库库中可行吗?或者我应该只使用 pgBouncer而不是试图获得 database/sqlpgx处理这种平衡?

最佳答案

每当您调用sql.Open(driverName, dataSourceName) 时,golang 中的连接池就会创建,其中dataSourceName 是用于连接的特定于驱动程序的配置到数据库。每当我们更改配置(即更改主机地址、模式、用户名等)时,我们都需要打开新连接,因此将创建新连接池。如果驱动程序可以处理负载平衡,则它应该在 dataSourceName 中是可配置的,例如如 MariaDB Connector/J高可用性配置。

据我所知,lib/pq 尚不支持负载均衡和 pgx .在您的情况下,要连接到集群中的数据库服务器,您需要为每个服务器打开不同的连接池,然后手动管理连接(并执行负载平衡)。这种方法需要做很多工作。我认为使用 pgBouncer 更好。

关于postgresql - 如何获取 Golang 数据库连接池来管理集群中多台主机的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com