我在四个PostgreSQL工作人员之间设置bi-direction replication,我想让我的Go数据库连接池处理四个连接。它应该能够为它们创建多个连接,为任何给定查询随机选择一个连接,并在连接断开时进行故障切换。这在Go数据库库中是可行的吗?或者我应该只使用pgBouncer而不是试图让database/sql或pgx来处理这种平衡?如何获取Golang数据库连接池来管理群集中多个主机的连接?
1
A
回答
2
golang中的连接池在您拨打sql.Open(driverName, dataSourceName)
时创建,其中dataSourceName
是驱动程序专用的configuration
用于连接到数据库。无论何时我们更改configuration
(即更改主机地址,模式,用户名等),我们都需要打开新的连接,因此将创建新的连接池。如果驱动程序可以处理负载平衡,则应该在dataSourceName
中配置,例如,如MariaDB Connector/J高可用性配置。
AFAIK,lib/pq和pgx尚未支持负载平衡。就你而言,要连接到集群中的数据库服务器,需要为每个服务器打开不同的连接池,然后手动管理连接(并执行负载平衡)。这种方法需要做很多工作。我认为最好使用pgBouncer。
+0
很好的答案,谢谢! – theory
相关问题
- 1. 管理多个数据库连接
- 2. 如何使用Spring来管理连接到多个数据库
- 3. 如何在spring jpa中管理数据库连接池?
- 4. 从连接池获取数据库连接
- 5. 数据库连接管理
- 6. Rails4:如何获取ActiveRecord连接池中的空闲连接数?
- 7. 如何管理数据库连接?
- 8. 从连接池到集群中的只读节点的连接
- 9. NodeJS集群和数据库连接
- 10. 管理连接到多个主机的套接字
- 11. JBoss数据库连接池
- 12. 数据库连接池
- 13. Spring中的数据库连接管理
- 14. 来自多个servlet的远程数据库连接池
- 15. OrientDB:如何连接到分布式集群中的多个远程主机?
- 16. 连接到很多数据库时的django和数据库连接池
- 17. 多个连接池
- 18. 如何从主机连接到主机的数据库?
- 19. 从C3P0连接池获取数据源/连接
- 20. Norm.MongoException:连接超时尝试从连接池中获取连接
- 21. 无法与来自主机的minikube群集建立连接
- 22. Standalone Axis2中的数据库连接池?
- 23. websphere如何通过多个请求的数据源管理连接池
- 24. 选择一个数据库连接池
- 25. 连接池显示数据库中的INACTIVE连接
- 26. Java中集中的数据库连接管理
- 27. 获取连接池中的空闲连接数
- 28. 使用数据库池汇集的连接错误太多
- 29. 多个数据库连接
- 30. 多个数据库连接
golang中的连接池是根据'配置'(对于每个模式的PostgreSQL,对于MySQL,您可以使用“相同”连接访问同一服务器中的多个数据库/模式)。如果您需要连接到多个服务器,则需要为每个服务器创建不同的连接池,然后手动管理它。恕我直言,在你的情况下,你应该使用pgBouncer。 – putu
似乎是对的,@putu。想把这个答案放在我能接受的答案中吗? – theory