天天看點

使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

目的

外界将讀寫請求發給Haproxy,Haproxy将請求分發給mycat可用節點,mycat伺服器再根據讀或寫向mysql伺服器進行資料操作。

前提

在之前mycat代理mysql讀寫分離的基礎上進行配置

haproxy 119.23.237.241 

mycat_01 118.25.178.145

mycat_02 106.12.203.18 

步驟

  • 每個mycat節點配置xinetd
  • 安裝haproxy
  • 配置rsyslog
  • 測試連接配接

操作

配置xinetd

安裝

yum install xinetd
           

檢查/etc/xinetd.conf的末尾是否有 includedir /etc/xinetd.d ,沒有就加上

檢查 /etc/xinetd.d 目錄是否存在,不存在則建立

添加服務:檢測mycat伺服器狀态

vim /etc/xinetd.d/mycat_status


service mycat_status
{
        flags = REUSE
        socket_type = stream
        port = 48700
        wait = no
        user = root
        server = /usr/local/bin/mycat_status
        log_on_failure += USERID
        disable = no
}
           

添加服務腳本

vim /usr/local/bin/mycat_status

#!/bin/bash
#/usr/local/bin/mycat_status.sh
# This script checks if a Mycat server is healthy running on localhost.
# It will return:
# "HTTP/1.x 200 OK\r" (if Mycat is running smoothly)
# "HTTP/1.x 503 Internal Server Error\r" (else)
mycat=`/usr/local/mycat/bin/mycat status | grep 'not running' | wc -l`
if [ "$mycat" = "0" ]; then
/bin/echo -e "HTTP/1.1 200 OK\r\n"
else
/bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n"
fi
           

給服務和腳本添權重限

chmod 755 /etc/xinetd.d/mycat_status
chmod 755 /usr/local/bin/mycat_status
           

service添加監聽端口

vim /etc/service

mycat_status    48700/tcp    #mycat_status
           

啟動xinetd

service xinetd restart
           

檢視是否配置成功

netstat -antup|grep 48700
           
使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

開啟伺服器48700端口

測試腳本

/usr/local/bin/mycat_status
           

 mycat服務未開啟

使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

開啟mycat服務後

使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

xinetd mycat檢測服務腳本配置成功

安裝haproxy

解壓壓縮包至/usr/local

添加依賴

yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
           

編譯

make TARGET=linux2628 ARCH=x86_64 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy

## TARGET是指定核心版本,高于2.6.28的建議設定為linux2628,Linux作業系統核心版本檢視指令# uname -r, 
ARCH指定系統架構,openssl pcre zlib 這三個包需要安裝不然不支援
           

建立目錄

/usr/local/haproxy
           

執行安裝

cd /usr/local/haproxy-1.6.14

make install PREFIX=/usr/local/haproxy
           

建立配置檔案目錄

mkdir -p /usr/local/haproxy/conf
mkdir -p /etc/haproxy/
           

建立配置檔案haproxy.cfg

global
        log 127.0.0.1 local0 info ##記日志的功能
        maxconn 4096
        chroot /usr/share/haproxy
	group haproxy
	user haproxy
	nbproc 1
        daemon
 
defaults
        log global
	mode http
        option httplog
        retries 3
        option redispatch
        maxconn 2000
        timeout connect 5000
        timeout client 50000
        timeout server 50000
 
listen admin_status
        bind :48800
        stats uri /admin-status ##統計頁面
        stats auth admin:admin
        mode http
        option httplog
 
listen allmycat_service
        bind :3307
        mode tcp
        option tcplog
        option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
        balance roundrobin
        server mycat_01 118.25.178.145:8066 check port 48700 inter 2s rise 2 fall 3 weight 10
        server mycat_02 106.12.203.18:8066 check port 48700 inter 2s rise 2 fall 3 weight 10
        timeout server 20000
 
           

添加配置檔案軟連接配接

ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg
           

複制開機啟動檔案,賦予權限

cp /usr/local/haproxy-1.6.14/examples/haproxy.init /etc/rc.d/init.d/haproxy

chmod +x /etc/rc.d/init.d/haproxy
           

為haproxy腳本建立軟連接配接

ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin
           

設定haproxy開機啟動

chkconfig --add haproxy
chkconfig haproxy on
           

根據haproxy.cfg需要做以下操作:

添加使用者和使用者組

groupadd haproxy
useradd -g haproxy haproxy
           

建立haproxy運作路徑

mkdir /usr/share/haproxy
           

開啟3307(連接配接haproxy)和48800(監控)端口

配置rsyslog 的haproxy日志

檢視是否已經安裝rsyslog

yum list installed|grep rsyslog
           

否則

yum install rsyslog
           

修改rsyslog.conf,把這倆前的#号去掉

vim /etc/rsyslog.conf
           
使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

配置中若沒有$IncludeConfig /etc/rsyslog.d/*.conf,需要加上,否則不能加載haproxy.conf的配置

建立haproxy.conf讓rsyslog.conf來加載此配置

vim /etc/rsyslog.d/haproxy.conf

local0.* /var/log/haproxy.log

&~
           

配置儲存後,啟動rsyslog服務

service rsyslog restart
           
使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

配置系統ip包轉發

vim /etc/sysctl.conf

#添加
net.ipv4.ip_forward = 1
           

使配置生效

sysctl -p
           

啟動Haproxy服務

service haproxy start
           
使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

 測試連接配接

用navicat連接配接haproxy,使用者資訊為mycat配置的可通路使用者資訊

使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

可用看到邏輯庫基本資訊

使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

通路登入48800端口可以檢視

使用Mycat叢集部署及Haproxy負載均衡目的前提步驟操作 測試連接配接

成功配置。

繼續閱讀