开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-集群-HAProxy 安装配置 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/757/detail/13288
MyCat-集群-HAProxy 安装配置
安装
首先先回顾下图:
最初是安装完成了 MySQL,并且配置了 MySQL 的主从复制,接下来安装了两台 MyCat ,并对 MyCat 中的服务进行了配置,在 MyCat 中配置了逻辑库、逻辑表以及通过 MyCat 来实现 MySQL 的读写分离,图中下半部分的操作以及安装并且配置完成,接下来要进行剩下两部分的操作,第一部分是 HAPRoxy 负载均衡软件的安装,另一部分是 Keepalived 的安装,先安装 HAPRoxy ,而 HAPRoxy 的安装根据服务器的规划,需在两台服务器上都安装 HAPRoxy ,分别是 159 和 160,
1).准备好 HAPRoxy 安装包,传到 /root 目录下,借助 stp 软件
1 haproxy-1.5.16.tar.gz
2).解压到 /usr/local/src 目录下
1 执行指令tar-zxvf haproxy-1.5.16.tar.gz
3).解压完成后,切换到解压目录下,HAProxy 是 C 语言开发的,需要对 C 语言的源码进行编译,进入解压后的目录,查看内核版本,进行编译,编译内容如下:
cd/usr/1oca1/src/haproxy-1.5.16
uname -r
make TARGET=1inux2632 PREFIX=/usr/1oca1/haproxy ARCH=x86_64
# ARGET=1inux310
,内核版本,使用 uname-r 查看内核,如: 2.6.32-431.e16.x86 64,此时该参数就为 1inux2632
#ARCH=x86_64
,系统位数;
# PREFIX=/usr/1oca1/haprpxy#/usr/1ocal/haprpxy
,为 haprpxy 安装路径。
通过 PREFIX=/usr/1oca1/ 指定安装地址,操作系统的版本是通过 uname -r 进行查看的,操作系统的位数指的是 32 位或 64 位,x86_64 指的是 64 位。
执行此条指令时要将服务器改成自己的版本,需要通过 uname -r 进行查看的,然后去修改此条指令。下图是开始编译:
4).编译完成后,进行安装,直接执行此条指令,
make install PREFIX=/usr/local/haproxy
5).安装完成后,创建目录
mkdir -p/usr/date/hoproxy
6).创建 HAProxy 配置文件
Vim/usr/local/haproxy/haproxy.conf
1 g1oba1
2 1og 127.0.0.1 loca10
3 maxconn 4096
4 chroot /usr/1ocal/haproxy
5 pidfile /usr/data/haproxy/haproxy.pid
6 uid 99
7 gid 99
8 daemon
9 node mysql-haproxy-01
10 description mysq1-haproxy-01
11 defaults
12 1og globa1
13 mode tcp
14 option abortonclose
15 option redispatch
16 retries 3
17 maxconn 2000
18 timeout connect 50000ms
19 timeout client 50000ms
20 timeout server 50600ms
21 listen proxy_status
22 bind 0.0.0.0:48066
23 mode tcp
24 balance roundrobin
25 server mycat_1 192.168.192.157:8066 check
26 server mycat_2 192.168.192.158:8066 check
27 frontend adminstats
28 bind 0.0.0.0:8888
29 mode http
30 stats enable
31 option httplog
32 maxconn 10
33 stats refresh 30s
34 stats uri /admin
35 stats auth admin:123123
36 stats hide-version
37 stats admin if true
说明:图中上部分是 HAPRoxy 全局的配置,比如日志的配置,以及运行时用户 id ,主 id 以守护进程的方式运行,图中的 node 指的是节点名称,图中中间部分是连接的从事次数,最大的连接数,以及超时时间的配置。
重点说明:图中下面两部分的配置是重点
第一部分是使用 HAProxy 这个负载均衡服务,其在此处代理的服务是 157:8066 和158:8066,因为计划安装的 HAProxy 要担任 Mycat 的负载均衡,因此 HAProxy 就相当于是一个代理服务器,代理的是后端的 MyCat ,(配置时需具体指定是哪一台 MyCat ),共有两台 MyCat ,一台是 157:8066,另一台是 158:8066,此处需修改成自己的 ip,接下来的端口绑定了 8888,上面的端口绑定了 48066,实际上是指当前 HAProxy 对外暴露的端口是 48066,8888 是其管理端口,其中有一个管理的访问路径( /admin ),以及访问用户名( /admin ),以及密码 123123。
注意:需要修改的地方注意有三处,如下:
配置保存完成之后进行下一步操作
启动访问
1).启动 HAProxy
1/usr/1oca1/haproxy/sbin/haproxy-f/usr/1oca1/haproxy/haproxy.conf
2).查看 HAProxy 进程
1 ps -eflgrep haproxy
3).访问
http://192.168.192.162:8888/admin
界面:
HAProxy 的负载均衡策略:
策略 |
含义 |
roundrobin |
表示简单的轮循,即客户端美访问一次,请求轮循跳转到后端不同的节点机器上 |
Static-rr |
基于权重轮循,根据权重轮循调度到后端不同节点 |
leastconn |
加权最少连接,表示最少流量计者优先处理 |
source |
表示根据请求源 IP,这个跟IP_hash 机制类似,使用其作为解决 session 问题的一种方法 |
uri |
表示根据请求的 URL ,调度到后端不同服务器 |
url_param |
表示根据请求的 URL 参数来进行调度 |
Har(name) |
表示根据 HTTP 请求头来锁定每一次 HTTP 请求 |
Rdp-cookie(name) |
表示根据 cookie(naamw)来锁定并哈希每一次 TCP 请求 |
HAProxy 需要在 159 上进行安装,并且 159 上以及安装并且配置完成,接下来需安装 160,实际上 160 的安装以及配置和 159 基本上是一致的,只需将 node mysql-haproxy-01
改为 node mysql-haproxy-02
其他可不做修改。