潭州课堂25班:Ph201805201 django 项目 第四十五课 mysql集群和负载均衡(课堂笔记)
2.使用docker安装Haproxy
一、为什么要使用数据库集群和负载均衡?
1.高可用
2.高并发
3.高性能
二、mysql数据库集群方式
三、使用docker安装PXC
1.拉取PXC镜像
docker pull percona/percona-xtradb-cluster:5.7
2.创建volume卷
docker volume create --name v1
docker volume create --name v2
docker volume create --name v3
3.创建network网络
docker network create --subnet=172.18.0.0/24 net1
4.运行PXC容器
- # 创建node1
- docker run -d -p 8002:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 -e XTRABACKUP_PASSWORD=qwe123 -e CLUSTER_NAME=PXC --name=node1 --net=net1 --ip 172.18.0.2 percona/percona-xtradb-cluster:5.7
- # 创建node2
- docker run -d -p 8003:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 -e XTRABACKUP_PASSWORD=qwe123 -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 --name=node2 --net=net1 --ip 172.18.0.3 percona/percona-xtradb-cluster:5.7
- # 创建node3
- docker run -d -p 8004:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qwe123 -e XTRABACKUP_PASSWORD=qwe123 -e CLUSTER_NAME=PXC -e CLUSTER_JOIN=node1 --name=node3 --net=net1 --ip 172.18.0.4 percona/percona-xtradb-cluster:5.7
么要使用Haproxy?
1.高性能
2.使用docker安装Haproxy
- # 拉取haproxy image
- docker pull haproxy
- # 在虚拟机中创建保存haproxy配置文件的目录
- mkdir -p ~/haproxy_conf/
- # 创建haproxy.cfg配置文件
- global
- #工作目录
- chroot /usr/local/etc/haproxy
- #日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
- log 127.0.0.1 local5 info
- #守护进程运行
- daemon
- defaults
- log global
- mode http
- option httplog
- option dontlognull
- timeout connect 5000
- timeout client 50000
- timeout server 50000
- #监控界面
- listen admin_stats
- #监控界面的访问的IP和端口
- bind 0.0.0.0:8888
- #访问协议
- mode http
- #URI相对地址
- stats uri /
- stats realm Global\ statistics
- #登陆帐户信息
- stats auth admin:qwe123
- #数据库负载均衡
- listen proxy-mysql
- #访问的IP和端口
- bind 0.0.0.0:3306
- #网络协议
- mode tcp
- #负载均衡算法(轮询算法)
- #轮询算法:roundrobin
- #权重算法:static-rr
- #最少连接算法:leastconn
- #请求源IP算法:source
- balance roundrobin
- #日志格式
- option tcplog
- #在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
- option mysql-check user haproxy
- server MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000
- server MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000
- server MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000
- option tcpka
- # 运行容器
- docker run -it -d -p 8078:8888 -p 8036:3306 -v \ /home/pyvip/haproxy_conf:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.5 haproxy
- # 进入haproxy容器,启动haproxy
- docker exec -it h1 bash
- # 加载haproxy配置文件
- haproxy -f /usr/local/etc/haproxy/haproxy.cf
3.使用Navicat登录haproxy
数据库中创建一个没有任何权限的haproxy用户,密码为空,来测试mysql负载均衡是否正常。
CREATE USER 'haproxy'@'%' IDENTIFIED BY
潭州课堂25班:Ph201805201 django 项目 第四十五课 mysql集群和负载均衡(课堂笔记)的更多相关文章
- 潭州课堂25班:Ph201805201 django 项目 第三十五课 后台用户权限的添加 mixins 课堂笔记)
验证用户登录: 对一个视图函数进行登录权限验证,(登录后才可以访问,否则重定向到登录页面) #from django.contrib.auth.decorators import login_requ ...
- 潭州课堂25班:Ph201805201 django 项目 第四十六课 查错 补缺 (课堂笔记
从讲项目开始,查找错误,完善笔记,尽可能 翻译没一句代码(以后台为主), 本项目亮点,也是重点 Django ORM中对数据查询的优化(only.defer.select_related) redis ...
- 潭州课堂25班:Ph201805201 django 项目 第四十二课 后台 课程相关,用户组管理 (课堂笔记)
在线课程: 当点击进入页面时,显示所有课程 def get(self, request): courses = Course.objects.select_related('category', 't ...
- 潭州课堂25班:Ph201805201 django 项目 第四十四课 项目部署 (课堂笔记)
项目部署 稳定,并发,效益, 一.Django配置 1.settings.py配置 复制全局settings.py配置文件,创建一个副本命名为MyBlog/pro_settings.py,修改DEBU ...
- 潭州课堂25班:Ph201805201 django 项目 第三十二课 后台站点管理(课堂笔记)
一.后台站点模版抽取 1.获取静态站点模版 可以使用git clone到本地 git clone https://github.com/almasaeed2010/AdminLTE.git 也可以在g ...
- 潭州课堂25班:Ph201805201 django 项目 第四十课 后台 文章发布,更新实现,热门新闻管理,轮播图管理(课堂笔记)
把图片上传到 七牛云,必须经过后台的许可, 在虚拟机中安装七牛云所需模块pip install qiniu # 创建utils/secrets/qiniu_secret_info.py文件 # 从七牛 ...
- 潭州课堂25班:Ph201805201 django 项目 第三十九课 后台 文章发布,图片上传到 FastDFS后端实现 七牛云讲解(课堂笔记)
文章发布: # 1,从前台获取参数# 2,校验参数# 3,把数据保存到数据库# 4,返回执行结果到前台,(创建成功或失败) 自定义 froms.py 校验参数 上传图片到七牛云 注册 https:// ...
- 潭州课堂25班:Ph201805201 django 项目 第三十八课 后台 文章发布,FastDFS安装 配置(课堂笔记)
, .安装FastDFS # 从docker hub中拉取fastdfs镜像docker pull youkou1/fastdfs # 查看镜像是否拉取成功docker images # 安装trac ...
- 潭州课堂25班:Ph201805201 django 项目 第三十六课 后台文章管理(课堂笔记)
get 请求, 1,获取文章标签 , 2,拿到前台传来的值, 3,根据前台传来的值在数据库中查询 4.,返回数据到前台,渲染, 分页算法 : 在 utils 下创建 paginator_script ...
随机推荐
- .gz解压
1.今天很神奇我遇到这样的压缩包,啧啧啧,好少见的,记录下 gzip -d http_log.gz 这是讲http_log文件解压到当前的路径下
- Ajax 异步局部刷新
Ajax 异步局部刷新 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页 ...
- Leetcode刷题第004天
class Solution { public: int findKthLargest(vector<int>& nums, int k) { , nums.size()-, k) ...
- jQuery分步步骤
插件描述:jQuery上一步.下一步,分步步骤,兼容性如下: 使用方法 1.引入样式和脚本 <link rel="stylesheet" type="text/cs ...
- mycat配置文件备份
schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd&q ...
- (6).NET CORE微服务 Micro-Service ---- AOP框架
AOP 框架基础 要求懂的知识:AOP.Filter.反射(Attribute). 如果直接使用 Polly,那么就会造成业务代码中混杂大量的业务无关代码.我们使用 AOP (如果不了解 AOP,请自 ...
- cookie实现刷新不变化树形菜单
通过设置cookie来保存树形菜单的状态,在页面加载时重新读取cookie来设置菜单. 菜单的HTML结构: <div class="treemenu"> <ul ...
- Java LinqCollection 仿Linq的list常用函数
目前支持find,findAll,sort,select,remove等,java不支持lamda函数,因此用接口代替 public interface Fun<T1,T2> { publ ...
- plink命令
用plink远程登陆link主机执行脚本,但是无法执行sudo命令 完成后自己关闭 plink -l root 192.168.1.21 df -h plink.exe -ssh -p ...
- Python--os的常见方法
1.os.getcwd()+'/filename'------>相当于在当前运行文件的目录下创建一个以filename命名的文件 2.os.path.realpath(__file__)---- ...