安装多实例proxysql

一、环境准备

1.1 版本

proxysql 版本:1.4.15        #发布时间:2019.2.15

操作系统:CentOS 7.5

1.2 端口预分配

实例1:proxysql 6042   6043

实例2:proxysql 6052   6053

实例3:proxysql 6062   6063

注:其中60x2为管理端口,60x3为应用端口

1.2 系统配置

#关闭selinux
sed -i '/^SELINUX/s/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

#安装依赖
yum -y install perl-DBD-MySQL

#优化限制参数
vi /etc/security/limits.conf
* hard nofile 65535
* soft nofile 10240

 

二、多实例安装

2.1 下载安装

#下载
wget https://github.com/sysown/proxysql/releases/download/v1.4.15/proxysql-1.4.15-1-centos7.x86_64.rpm

#安装
yum -y install proxysql-1.4.15-1-centos7.x86_64.rpm

#查看
proxysql --version		#查看版本

[root@localhost opt]# rpm -ql proxysql		#查看安装路径
/etc/init.d/proxysql
/etc/proxysql.cnf
/usr/bin/proxysql
/usr/share/proxysql/tools/proxysql_galera_checker.sh
/usr/share/proxysql/tools/proxysql_galera_writer.pl

2.2 修改配置文件

#增加配置文件
cp /etc/proxysql.cnf /etc/proxysql6042.cnf 
cp /etc/proxysql.cnf /etc/proxysql6052.cnf 
cp /etc/proxysql.cnf /etc/proxysql6062.cnf 


#创建所需目录,并赋予权限
mkdir -p /var/lib/{proxysql6042,proxysql6052,proxysql6062}
chown -R proxysql.proxysql /var/lib/{proxysql6042,proxysql6052,proxysql6062}

#修改proxysql6042.cnf
vi /etc/proxysql6042.cnf		#只修改以下3个地方
datadir="/var/lib/proxysql6042"
mysql_ifaces="0.0.0.0:6042"
interfaces="0.0.0.0:6043"

#按照上述方法依次修改proxysql6052.cnf 、proxysql6052.cnf 

2.3 配置自启服务

1>生成启动文件ProxySQL6042.service

vi /usr/lib/systemd/system/ProxySQL6042.service
[Unit] 
Description=ProxySQL6042 Service 
After=syslog.target 
After=network.target

[Service] 
USER="proxysql"
ulimit -n 102400
ulimit -c 1073741824
Type=simple 
Restart=on-abort 
PIDFile=/var/lib/ProxySQL6042/proxysql.pid
ExecStart=/usr/bin/ProxySQL6042 -c /etc/proxysql6042.cnf -D /var/lib/ProxySQL6042 PrivateTmp=true

[Install] 
WantedBy=multi-user.target


#安装上述方法生成ProxySQL6042.service、ProxySQL6042.service,只需修改端口号

2>配置启动服务

cp /usr/bin/proxysql /usr/bin/proxysql6042
cp /usr/bin/proxysql /usr/bin/proxysql6052
cp /usr/bin/proxysql /usr/bin/proxysql6062

2.4 配置启动文件

借助默认启动文件(/etc/init.d/proxysql)增加:proxysql6042、proxysql6052、proxysql6062
cp /etc/init.d/proxysql /etc/init.d/proxysql6042
cp /etc/init.d/proxysql /etc/init.d/proxysql6052
cp /etc/init.d/proxysql /etc/init.d/proxysql6062

#依次修改三个启动文件脚本,下面列出了需要修的行号和具体内容
vi /etc/init.d/proxysql6042
 19  OLDDATADIR="/var/run/proxysql6042"			# proxysql 改为 proxysql6042
 20  DATADIR="/var/lib/proxysql6042"
 21  OPTS="-c /etc/proxysql6042.cnf -D $DATADIR"
 84  proxysql6042 $OPTS						# 新的启动
107  for i in `pidof proxysql6042` ; do		# pgrep proxysql 改为 pidof proxysql6042
144  for i in `pidof proxysql6042` ; do
197  echo "Usage: ProxySQL6042 {start|stop|status|reload|restart|initial}"

#把pgrep改成pidof,这是因为通过pgrep找到了所有的proxysql实例的进程号,会引起误操作,单实例ProxySQL可以不修改。

2.5 设置开机自启

/sbin/chkconfig proxysql6042 on
/sbin/chkconfig proxysql6052 on
/sbin/chkconfig proxysql6062 on
/sbin/chkconfig proxysql off	#关闭默认端口服务

[root@localhost opt]# /sbin/chkconfig --list
proxysql       	0:关	1:关	2:关	3:关	4:关	5:关	6:关		
proxysql6042   	0:关	1:关	2:开	3:开	4:开	5:开	6:关
proxysql6052   	0:关	1:关	2:开	3:开	4:开	5:开	6:关
proxysql6062   	0:关	1:关	2:开	3:开	4:开	5:开	6:关

至此,多实例部署完成!!!

 

三、测试

3.1 自启服务启动测试

systemctl daemon-reload 
systemctl stop proxysql6042 
systemctl start proxysql6042 
systemctl status proxysql6042

systemctl daemon-reload 
systemctl stop proxysql6052 
systemctl start proxysql6052 
systemctl status proxysql6052

systemctl daemon-reload 
systemctl stop proxysql6062 
systemctl start proxysql6062 
systemctl status proxysql6062

3.2 手动启动测试

/etc/init.d/proxysql6042 start
/etc/init.d/proxysql6052 start
/etc/init.d/proxysql6062 start

:如果proxysql使用--idle-threads选项启动,每个worker线程都会伴随启动一个auxiliary线程。每个worker线程以及它的auxiliary线程一起工作:第一个线程处理活动的连接,并将所有的空闲连接派遣到第二个线程上,但第二个线程只要等待到了发生在空闲连接上的一个事件(或超时),就会将连接还给第一个线程。当活动的客户端连接数量远少于空闲客户端连接数量时,强烈建议使用"idle threads"。这使得ProxySQL可以处理几十万个连接(测试时是100W个连接)。

3.3 查看

ps aux|grep proxysql
proxysql   5571  S    16:30   0:00 proxysql6042 -c /etc/proxysql6042.cnf -D /var/lib/proxysql6042
proxysql   5572  Sl   16:30   0:00 proxysql6042 -c /etc/proxysql6042.cnf -D /var/lib/proxysql6042
proxysql   5628  S    16:30   0:00 proxysql6052 -c /etc/proxysql6052.cnf -D /var/lib/proxysql6052
proxysql   5629  Sl   16:30   0:00 proxysql6052 -c /etc/proxysql6052.cnf -D /var/lib/proxysql6052
proxysql   5676  S    16:30   0:00 proxysql6062 -c /etc/proxysql6062.cnf -D /var/lib/proxysql6062
proxysql   5677  Sl   16:30   0:00 proxysql6062 -c /etc/proxysql6062.cnf -D /var/lib/proxysql6062

#查看端口
netstat -nultp |grep proxysql
tcp        0      0 0.0.0.0:6052            0.0.0.0:*               LISTEN      5629/proxysql6052
tcp        0      0 0.0.0.0:6053            0.0.0.0:*               LISTEN      5629/proxysql6052
tcp        0      0 0.0.0.0:6062            0.0.0.0:*               LISTEN      5677/proxysql6062
tcp        0      0 0.0.0.0:6063            0.0.0.0:*               LISTEN      5677/proxysql6062
tcp        0      0 0.0.0.0:6042            0.0.0.0:*               LISTEN      5819/proxysql6042
tcp        0      0 0.0.0.0:6043            0.0.0.0:*               LISTEN      5819/proxysql6042


[root@localhost ~]# pstree |grep proxysql
        |-proxysql6042---proxysql6042---18*[{proxysql6042}]
        |-proxysql6052---proxysql6052---18*[{proxysql6052}]
        |-proxysql6062---proxysql6062---18*[{proxysql6062}]

 

你可能感兴趣的:(ProxySQL,中间件)