当前位置: 首页 > news >正文

haproxy(七层代理)、python代码的读写分离

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

1.安装

安装ntpdate

[root@haproxy ~]# yum -y install ntpdate.x86_64

安装ntp

[root@haproxy ~]# yum -y install ntp

同步时间

[root@haproxy ~]# ntpdate cn.ntp.org.cn

启动ntp服务

[root@haproxy ~]# systemctl start ntpd

设置开机自启

[root@haproxy ~]# systemctl enable ntpd

安装haproxy

[root@haproxy ~]# yum -y install haproxy18.x86_64

2.配置

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

3.重启

设置开机启动

[root@haproxy ~]# systemctl restart haproxy

[root@haproxy ~]# systemctl enable haproxy

注:web01 ,web02开启nginx服务,然后测试

4.测试

[root@haproxy ~]# curl 192.168.1.245

web========01

[root@haproxy ~]# curl 192.168.1.245

web========02

[root@haproxy ~]# curl 192.168.1.245

web========01

[root@haproxy ~]# curl 192.168.1.245

web========02

5.添加统计页面

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

重启服务

[root@haproxy ~]#systemctl restart haproxy18.service

浏览器访问:

192.168.1.245:9090/hadmin?stats)

6.添加权重

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

重启服务

[root@haproxy ~]#systemctl restart haproxy18.service

浏览器访问:

刷新发现: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. 配置文件

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. 配置文件

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账号

2. flush tables with read lock;

3. show master status\G;

文件名称

文件位置

4.设置从数据库

help change master to

1. change master to

2. 启动slave并且查看状态

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

6. 执行修改 master

7. 执行删除 master

8. 执行新增 master

9. 执行查询 slave

http://www.jsqmd.com/news/1069790/

相关文章:

  • TaskJuggler脚本编程入门:用代码实现自动化项目管理
  • Snap源码剖析:深入理解SwiftUI手势与布局计算的实现细节
  • Data Hacking代码解析:深入理解项目核心模块与实现原理 [特殊字符]
  • 如何通过biliTickerBuy构建B站会员购抢票通知系统
  • Miui_Camera徠卡模式深度解析:经典/生动风格对比与最佳拍摄参数
  • 服务化框架(Triton, TensorRT)优化技巧(分层式精讲)
  • 终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果
  • console-powers与其他调试工具对比:何时选择什么方案
  • p项目扩展指南:如何自定义Python镜像源和安装路径
  • Amber Smalltalk:在JavaScript运行时上构建高效客户端应用的终极指南
  • 打造个性化Instagram Clone:主题定制与用户体验优化技巧
  • 未来展望:RoseTTAFold-All-Atom的发展路线图与社区支持资源汇总
  • 终极指南:如何用shadPS4在电脑上免费畅玩PS4游戏
  • KiCad库维护与更新终极指南:开发者必备的完整知识体系
  • Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作
  • BiliBiliToolPro终极指南:如何高效自动化你的B站日常任务
  • Angular移动导航插件开发:如何创建自定义导航组件
  • Typedown:Windows平台轻量级Markdown编辑器的终极指南 [特殊字符]
  • HACG扩展功能开发:如何为ACG阅读器添加新特性
  • 当传统3D渲染撞上瓶颈,高斯泼溅如何用CUDA加速打破僵局?
  • Safety-DB案例研究:如何避免因依赖包漏洞导致的安全事故
  • 技术对比:Nav2运动控制器深度评测 - Regulated Pure Pursuit vs MPPI vs DWB
  • 终极实战教程:如何使用Keras实现实时多人姿态估计处理图像、视频与摄像头流
  • AIGC赋能前端开发
  • Megadesk终极指南:10个创意应用与用户案例分享,打造智能升降桌体验 [特殊字符]
  • RoseTTAFold-All-Atom Docker容器部署完全指南:简化复杂环境配置
  • 如何快速掌握QuantsPlaybook:量化投资实战指南与券商研报复现方法
  • MITK社区贡献指南:如何参与开源医学影像工具包的开发与改进
  • 如何快速上手MAAC:10分钟完成多智能体协作训练实战指南
  • 5步打造智能微信助手:轻松实现多AI自动化回复的终极方案