HAproxy連接Mycat集羣docker-compose版

1. 前言

設置一個統一的入口來控制mycat集羣,在這裏我們使用到了HAproxy來做負載均衡和請求轉發。

2. 架構圖

在這裏插入圖片描述

3. 配置HAproxy

# 創建文件夾
cd /usr/local/docker
mkdir haproxy/etc/haproxy -p
# 創建配置文件
cd /usr/local/docker/haproxy/etc/haproxy
vim haproxy.cfg
## 輸入下列內容 
global
	#工作目錄
	chroot /usr/local/etc/haproxy
	#日誌文件,使用rsyslog服務中local5日誌設備(/var/log/local5),等級info
	log 127.0.0.1 local5 info
	#守護進程運行
	daemon

defaults
	log	global
	mode	http
	#日誌格式
	option	httplog
	#日誌中不記錄負載均衡的心跳檢測記錄
	option	dontlognull
    #連接超時(毫秒)
	timeout connect 5000
    #客戶端超時(毫秒)
	timeout client  50000
	#服務器超時(毫秒)
    timeout server  50000

#監控界面	
listen  admin_stats
	#監控界面的訪問的IP和端口(對應前端頁面的端口訪問,可以修改)
	bind  0.0.0.0:8888
	#訪問協議
    mode        http
	#URI相對地址
    stats uri   /dbs
	#統計報告格式
    stats realm     Global\ statistics
	#登陸帳戶信息
    stats auth  admin:123456
#數據庫負載均衡
listen  proxy-mysql
	#訪問的IP和端口
	bind  0.0.0.0:8889  
    #網絡協議
	mode  tcp
	#負載均衡算法(輪詢算法)
	#輪詢算法:roundrobin
	#權重算法:static-rr
	#最少連接算法:leastconn
	#請求源IP算法:source 
    balance  roundrobin
	#日誌格式
    option  tcplog
    #對mycat節點進行負載均衡

    server  mycat_1 mycat:8066 check port  8066 weight 1 maxconn 2000
    server  mycat_2 mycat02:8066 check port 8066  weight 1 maxconn 2000
	#使用keepalive檢測死鏈
    option  tcpka

4. docker-compose.yml

cd /usr/local/docker/haproxy
vim docker-compose.yml

version: '3'
services:
  haproxy:
    restart: always
    image: haproxy:2.1.2
    container_name: haproxy
    ports:
      - 8888:8888 # 端口來源於haproxy.cfg裏面配置
      - 8889:8889 # 統一的端口對mycat, haproxy.cfg裏面配置
    volumes:
      - ./etc/haproxy:/usr/local/etc/haproxy:ro #ro 表示僅僅只能讀

networks:
  default:
    external:
      name: mysql_network

5. 效果圖

5.1 容器效果

在這裏插入圖片描述

5.2 節點安全圖

ip:port/dbs
在這裏插入圖片描述

5.3 navicat連接圖

在這裏插入圖片描述

6. 補充說明

到現在你會發現。我們出現了一個新的負載均衡軟件。
那麼我們來簡單說說兩者的區別。

  1. nginx是一個HTTP服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。
  2. NginxHAproxy其實他們兩個的定位是有所不同的,Nginx的定位是一個serverHAproxy的定位是一個load balancer.
  3. HAproxy負載均衡性能比nginx好,有一個狀態統計頁面,官方支持會話保持、健康檢查等
發佈了179 篇原創文章 · 獲贊 22 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章