- PostgreSQL高可用實戰
- 胡輝等
- 921字
- 2022-08-16 17:40:46
2.2.2 安裝HAProxy
HAProxy始終提供3個有效的穩定發行版本(LTS,即長期支持,是Long Term Support的縮寫),即兩個正在開發中的最新版本和一個仍在接收重要更新的歷史版本。
通過訪問其官網可以得知,1.8、2.0和2.2是目前3個有效的穩定發行版本,如表2-1所示。
表2-1 HAProxy版本信息表

1.通過yum直接安裝發行版
運行yum list haproxy 命令可以得知,目前安裝標準庫的版本為1.5.18,已經不再維護。

2.通過源代碼安裝
接下來,安裝標準庫中當前最新穩定版本2.2,因此需要通過源代碼安裝。首先,檢查是否具備下載和編譯程序的先決條件。
確定是否具備編譯HAProxy的最小依賴環境。

使用以下命令下載源代碼。

下載完成后,使用以下命令解壓文件。

進入源代碼目錄。

編譯程序。

最后,安裝HAProxy。

3.配置HAProxy
現在已成功安裝HAProxy,但仍需要進行配置才能使其運行。

1)配置負載均衡
創建新文件/usr/local/etc/haproxy/haproxy.cfg,并將以下內容添加到文件中。
第一部分是全局和默認配置塊。


第二部分是統計信息的配置塊,此處可選,如果不需要統計信息,則可以通過 7000端口訪問。

第三部分是核心配置塊,假設 PostgreSQL 集群是使用內置的流復制模式配置的,包含一個master和兩個slaves。

2)參數解釋
bind參數:與HTTP負載均衡不同,HAProxy對數據庫沒有特定的“模式”,因此使用TCP方式。偵聽地址可以根據需要設置,此處設置為*:5000。
option pgsql-check user optima參數:運行狀況檢測可以根據需要選擇不同的軟件(如Patroni、Xinetd等),此處使用了PostgreSQL內置的pgsql-check。
balance參數:負載平衡算法,在后端部分中配置服務器,允許HAProxy根據可用的輪詢算法將這些服務器用于負載均衡。
平衡算法用于確定每個連接轉移到后端的哪個服務器,包括如下選項。
roundrobin(輪詢):根據權重依次使用每個服務器。當服務器的處理時間保持均勻分布時,這是最流暢、最公平的算法。該算法是動態的,可以動態調整服務器權重。
leastconn(最少連接優先):選擇連接數最少的服務器。在具有相同負載的服務器之間執行。建議在較長的會話(例如LDAP、SQL、TSE等)中使用此算法,不適用于較短的會話(例如HTTP)。
first(第一):具有可用連接插槽的第一臺服務器接收連接。從最低的數字標識符到最高的數字標識符之間選擇服務器。服務器達到其maxconn值后,將使用下一臺服務器。
source(源):對源IP地址進行散列處理,然后除以運行中服務器的總權重,以指定將接收請求的服務器。這樣,相同的客戶端 IP 地址將始終到達同一服務器,而服務器保持不變。
- 數據庫基礎教程(SQL Server平臺)
- 數據庫基礎與應用:Access 2010
- 云計算服務保障體系
- 城市計算
- INSTANT Cytoscape Complex Network Analysis How-to
- 大數據架構和算法實現之路:電商系統的技術實戰
- 企業級數據與AI項目成功之道
- Lego Mindstorms EV3 Essentials
- Apache Kylin權威指南
- Internet of Things with Python
- Deep Learning with R for Beginners
- Oracle 11g數據庫管理員指南
- 數字化轉型方法論:落地路徑與數據中臺
- Access 2013 數據庫管理與應用從新手到高手
- Python數據可視化之matplotlib精進