新闻详情
haproxy(七层代理)、python代码的读写分离
haproxy(七层代理)、python代码的读写分离
一、haproxy----高可用、负载均衡1.安装安装ntpdate[roothaproxy ~]# yum -y install ntpdate.x86_64安装ntp[roothaproxy ~]# yum -y install ntp同步时间[roothaproxy ~]# ntpdate cn.ntp.org.cn启动ntp服务[roothaproxy ~]# systemctl start ntpd设置开机自启[roothaproxy ~]# systemctl enable ntpd安装haproxy[roothaproxy ~]# yum -y install haproxy18.x86_642.配置[roothaproxy ~]# vim /etc/haproxy/haproxy.cfg3.重启设置开机启动[roothaproxy ~]# systemctl restart haproxy[roothaproxy ~]# systemctl enable haproxy注web01 ,web02开启nginx服务然后测试4.测试[roothaproxy ~]# curl 192.168.1.245web01[roothaproxy ~]# curl 192.168.1.245web02[roothaproxy ~]# curl 192.168.1.245web01[roothaproxy ~]# curl 192.168.1.245web025.添加统计页面[roothaproxy ~]# vim /etc/haproxy/haproxy.cfg重启服务[roothaproxy ~]#systemctl restart haproxy18.service浏览器访问192.168.1.245:9090/hadmin?stats)6.添加权重[roothaproxy ~]# vim /etc/haproxy/haproxy.cfg重启服务[roothaproxy ~]#systemctl restart haproxy18.service浏览器访问刷新发现web01出现次数比web02多二、基于代码层级的读写分离1.mysql的主从复制master1. rm -rf /etc/my.cnf2. glibc,下载解压3. 将解压后的文件移动的指定的/usr/local/mysql4. mkdir /usr/local/mysql/mysql-files5. useradd -r -s /sbin/nologin mysql6. chown mysql:mysql /usr/local/mysql/mysql-files7. chmod 750 /usr/local/mysql/mysql-files8. /usr/local/mysql/bin/mysqld --initialize -- usermysql --basedir/usr/local/mysql/9. 查看data目录和初始密码10. /usr/local/mysql/bin/mysql_ssl_rsa_setup -- datadir/usr/local/mysql/data11. 配置文件12.cp /usr/local/mysql/suport-files/msyql.server /etc/init.d/mysql813.service mysql8 start14.sed -i $aexport PATH$PATH:/usr/local/mysql/bin /etc/profile15.source /etc/profile16.mysql -h10.1.1.11 -P3306 -uzhangmin - pzhangmin17.create user aaaa%aaaa identified by sn18.grant all on . to aaaa;slave1. rm -rf /etc/my.cnf2. glibc,下载解压3. 将解压后的文件移动的指定的/usr/local/mysql4. mkdir /usr/local/mysql/mysql-files5. useradd -r -s /sbin/nologin mysql6. chown mysql:mysql /usr/local/mysql/mysql-files7. chmod 750 /usr/local/mysql/mysql-files8. 配置文件9.cp /usr/local/mysql/suport-files/msyql.server /etc/init.d/mysql82.同步数据1. yum -y install rsync2. service mysql8 stop3. master rm -rf /usrlocal/mysql/data/auto.cnf4. rsync -av /usr/local/mysql/data rootslaveip:/usr/loca/mysql5. salveservice mysql8 start6. masterservice msyql8 start3.设置主数据库1. 创建远程slave账号2. flush tables with read lock;3. show master status\G;文件名称文件位置4.设置从数据库help change master to1. change master to2. 启动slave并且查看状态3. master unlock tables;5.python代码的读写分离1.安装pymysql 是python管理mysql的驱动或者成为 连接器pip3 install pymysql2.在python3的命令行界面引入pymysqlimport pymysql3.创建两个connenction对象一个指向master mysql一个指向slave msyqlmaster_connpymysql.connect(host10.1.1.11,userdd,password1,port33 06,databasetest);slave_connpymysql.connect(host10.1.1.12,userdd,password1,port331 0,databasetest);4. 获取数据游标 mastermaster_cursormaster_conn.cursor()5. 执行查询 master6. 执行修改 master7. 执行删除 master8. 执行新增 master9. 执行查询 slave