我在四個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