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
💡
读完这篇文章,你可以带走什么

本文来自编程新知一线开发与建站实战沉淀:讲清原理、给出可复现步骤、标注避坑要点。看完后可以直接在你的项目或网站中落地验证。

编
编程新知内容团队
一线开发 · 建站实施 · 持续更新
由资深前端工程师、后端架构师与建站实施人员共同维护,坚持"真实案例 + 完整步骤 + 避坑指南"的内容准则。如果你在落地中遇到问题,欢迎联系我们交流。

想把这套方案用到自己的项目上?

编程新知提供技术答疑与网站建设一站式服务,欢迎联系我们获取针对性建议。

联系工程师
📚

系统学习该技术

进入对应栏目,从基础到进阶完整学习,配套案例与避坑指南。

前往栏目 →
🏗️

需要落地实施

企业建站、SEO 优化、服务器部署等需求,交给工程师一步到位。

了解服务 →
💬

还有疑问

技术难题或方案咨询,联系编程新知获取一对一的专业建议。

联系我们 →