梦应逍遥 发表于 2024-8-20 03:19:37

云计算实训28——haproxy(七层署理)、python代码的读写分离

一、haproxy----高可用、负载均衡

1.安装

   安装ntpdate
# yum -y install ntpdate.x86_64
安装ntp
# yum -y install ntp
同步时间
# ntpdate cn.ntp.org.cn
启动ntp服务
# systemctl start ntpd
设置开机自启
# systemctl enable ntpd
安装haproxy
# yum -y install haproxy18.x86_64
2.配置

   # vim /etc/haproxy/haproxy.cfg
https://i-blog.csdnimg.cn/direct/435dcace9cfd4accbef7b12f2a07f8cf.png
https://i-blog.csdnimg.cn/direct/fbb4f7b06bcd4d6cb46c17c740834e73.png
3.重启

设置开机启动
   # systemctl restart haproxy
# systemctl enable haproxy
注:web01 ,web02开启nginx服务,然后测试

4.测试

   # curl 192.168.1.245
web========01
# curl 192.168.1.245
web========02
# curl 192.168.1.245
web========01
# curl 192.168.1.245
web========02
5.添加统计页面

# vim /etc/haproxy/haproxy.cfg
https://i-blog.csdnimg.cn/direct/82310fa0bd69443485b479217bcf985d.png
重启服务
   #systemctl restart haproxy18.service

浏览器访问:
192.168.1.245:9090/hadmin?stats)
https://i-blog.csdnimg.cn/direct/a468fe8b9f1c4c6a9cdbe25199adbfaf.png
6.添加权重

   # vim /etc/haproxy/haproxy.cfg
https://i-blog.csdnimg.cn/direct/3616f0cc9e004fed9e7a2dec9c0cea52.png
重启服务
   #systemctl restart haproxy18.service

浏览器访问:
https://i-blog.csdnimg.cn/direct/979ae30282044c2ba3bb609bc3822f43.pnghttps://i-blog.csdnimg.cn/direct/ae0321aba72e4791a54e35abb93cfd43.png
刷新发现:web01出现次数比web02多
二、基于代码层级的读写分离

1.mysql的主从复制

master
1. rm -rf /etc/my.cnf
2. glibc,下载解压
3. 将解压后的文件移动的指定的/usr/local/mysql
4. mkdir /usr/local/mysql/mysql-files
5. useradd -r -s /sbin/nologin mysql
6. chown mysql:mysql /usr/local/mysql/mysql-files
7. chmod 750 /usr/local/mysql/mysql-files
8. /usr/local/mysql/bin/mysqld --initialize -- user=mysql --basedir=/usr/local/mysql/
9. 查看data目录和初始暗码
10. /usr/local/mysql/bin/mysql_ssl_rsa_setup -- datadir=/usr/local/mysql/data
11. 配置文件
https://i-blog.csdnimg.cn/direct/df9dc4eba2894b72850b1de99e5336fe.png
12.cp /usr/local/mysql/suport-files/msyql.server /etc/init.d/mysql8
13.service mysql8 start
14.sed -i '$aexport PATH=$PATH:/usr/local/mysql/bin' /etc/profile
15.source /etc/profile
16.mysql -h10.1.1.11 -P3306 -uzhangmin - pzhangmin
17.create user 'aaaa'%'aaaa' identified by 'sn'
18.grant all on . to 'aaaa';

slave
1. rm -rf /etc/my.cnf
2. glibc,下载解压
3. 将解压后的文件移动的指定的/usr/local/mysql
4. mkdir /usr/local/mysql/mysql-files
5. useradd -r -s /sbin/nologin mysql
6. chown mysql:mysql /usr/local/mysql/mysql-files
7. chmod 750 /usr/local/mysql/mysql-files
8. 配置文件
https://i-blog.csdnimg.cn/direct/c5aea0f95f664e939c6507f56ec117bd.png
9.cp /usr/local/mysql/suport-files/msyql.server /etc/init.d/mysql8


2.同步数据

1. yum -y install rsync
2. service mysql8 stop
3. master=> rm -rf /usrlocal/mysql/data/auto.cnf
4. rsync -av /usr/local/mysql/data root@slaveip:/usr/loca/mysql
5. salve=>service mysql8 start
6. master=>service msyql8 start

3.设置主数据库

1. 创建远程slave账号
https://i-blog.csdnimg.cn/direct/a6550ce22f60456886d0e9361a9a221a.png
2. flush tables with read lock;
3. show master status\G;
        文件名称
        文件位置

4.设置从数据库

help change master to
1. change master to
https://i-blog.csdnimg.cn/direct/cd21722994f54cae87121c4b16159e70.png
2. 启动slave并且查看状态
https://i-blog.csdnimg.cn/direct/605d40886c194fa5afb2f2cc97ffa750.png
3. master => unlock tables;

5.python代码的读写分离

1.安装pymysql 是python管理mysql的驱动,或者成为 毗连器
pip3 install pymysql
2.在python3的命令行界面引入pymysql
import pymysql
3.创建两个connenction对象,一个指向master mysql,一个指向slave msyql
master_conn=pymysql.connect(host="10.1.1.11",user="dd",password="1",port=33 06,database="test");
slave_conn=pymysql.connect(host="10.1.1.12",user="dd",password="1",port=331 0,database="test");
4. 获取数据游标 master
master_cursor=master_conn.cursor()
5. 执行查询 master
https://i-blog.csdnimg.cn/direct/467c13dd97f64151aa499fcb7de3d8ac.png
6. 执行修改 master
https://i-blog.csdnimg.cn/direct/43a527317bc64fef8621b3a38aa65e8e.png
7. 执行删除 master
https://i-blog.csdnimg.cn/direct/d0b23343dba542a4bb59e0eed774f369.png
8. 执行新增 master
https://i-blog.csdnimg.cn/direct/afd63ac78fa34ad59f9c7708ddd9a78d.png
9. 执行查询 slave
https://i-blog.csdnimg.cn/direct/c2314037764b4ba2ac93eb2e773ad126.png



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 云计算实训28——haproxy(七层署理)、python代码的读写分离