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容器

  1. # 创建node1
  2. 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
  3.  
  4. # 创建node2
  5. 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
  6.  
  7. # 创建node3
  8. 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

  1. # 拉取haproxy image
  2. docker pull haproxy
  3.  
  4. # 在虚拟机中创建保存haproxy配置文件的目录
  5. mkdir -p ~/haproxy_conf/
  6. # 创建haproxy.cfg配置文件
  7. global
  8. #工作目录
  9. chroot /usr/local/etc/haproxy
  10. #日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
  11. log 127.0.0.1 local5 info
  12. #守护进程运行
  13. daemon
  14.  
  15. defaults
  16. log global
  17. mode http
  18. option httplog
  19. option dontlognull
  20. timeout connect 5000
  21. timeout client 50000
  22. timeout server 50000
  23.  
  24. #监控界面
  25. listen admin_stats
  26. #监控界面的访问的IP和端口
  27. bind 0.0.0.0:8888
  28. #访问协议
  29. mode http
  30. #URI相对地址
  31. stats uri /
  32. stats realm Global\ statistics
  33. #登陆帐户信息
  34. stats auth admin:qwe123
  35. #数据库负载均衡
  36. listen proxy-mysql
  37. #访问的IP和端口
  38. bind 0.0.0.0:3306
  39. #网络协议
  40. mode tcp
  41. #负载均衡算法(轮询算法)
  42. #轮询算法:roundrobin
  43. #权重算法:static-rr
  44. #最少连接算法:leastconn
  45. #请求源IP算法:source
  46. balance roundrobin
  47. #日志格式
  48. option tcplog
  49. #在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
  50. option mysql-check user haproxy
  51. server MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000
  52. server MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000
  53. server MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000
  54. option tcpka
  55.  
  56. # 运行容器
  57. 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
  58.  
  59. # 进入haproxy容器,启动haproxy
  60. docker exec -it h1 bash
  61.  
  62. # 加载haproxy配置文件
  63. haproxy -f /usr/local/etc/haproxy/haproxy.cf

  

3.使用Navicat登录haproxy

数据库中创建一个没有任何权限的haproxy用户,密码为空,来测试mysql负载均衡是否正常。

CREATE USER 'haproxy'@'%' IDENTIFIED BY

潭州课堂25班:Ph201805201 django 项目 第四十五课 mysql集群和负载均衡(课堂笔记)的更多相关文章

  1. 潭州课堂25班:Ph201805201 django 项目 第三十五课 后台用户权限的添加 mixins 课堂笔记)

    验证用户登录: 对一个视图函数进行登录权限验证,(登录后才可以访问,否则重定向到登录页面) #from django.contrib.auth.decorators import login_requ ...

  2. 潭州课堂25班:Ph201805201 django 项目 第四十六课 查错 补缺 (课堂笔记

    从讲项目开始,查找错误,完善笔记,尽可能 翻译没一句代码(以后台为主), 本项目亮点,也是重点 Django ORM中对数据查询的优化(only.defer.select_related) redis ...

  3. 潭州课堂25班:Ph201805201 django 项目 第四十二课 后台 课程相关,用户组管理 (课堂笔记)

    在线课程: 当点击进入页面时,显示所有课程 def get(self, request): courses = Course.objects.select_related('category', 't ...

  4. 潭州课堂25班:Ph201805201 django 项目 第四十四课 项目部署 (课堂笔记)

    项目部署 稳定,并发,效益, 一.Django配置 1.settings.py配置 复制全局settings.py配置文件,创建一个副本命名为MyBlog/pro_settings.py,修改DEBU ...

  5. 潭州课堂25班:Ph201805201 django 项目 第三十二课 后台站点管理(课堂笔记)

    一.后台站点模版抽取 1.获取静态站点模版 可以使用git clone到本地 git clone https://github.com/almasaeed2010/AdminLTE.git 也可以在g ...

  6. 潭州课堂25班:Ph201805201 django 项目 第四十课 后台 文章发布,更新实现,热门新闻管理,轮播图管理(课堂笔记)

    把图片上传到 七牛云,必须经过后台的许可, 在虚拟机中安装七牛云所需模块pip install qiniu # 创建utils/secrets/qiniu_secret_info.py文件 # 从七牛 ...

  7. 潭州课堂25班:Ph201805201 django 项目 第三十九课 后台 文章发布,图片上传到 FastDFS后端实现 七牛云讲解(课堂笔记)

    文章发布: # 1,从前台获取参数# 2,校验参数# 3,把数据保存到数据库# 4,返回执行结果到前台,(创建成功或失败) 自定义 froms.py 校验参数 上传图片到七牛云 注册 https:// ...

  8. 潭州课堂25班:Ph201805201 django 项目 第三十八课 后台 文章发布,FastDFS安装 配置(课堂笔记)

    , .安装FastDFS # 从docker hub中拉取fastdfs镜像docker pull youkou1/fastdfs # 查看镜像是否拉取成功docker images # 安装trac ...

  9. 潭州课堂25班:Ph201805201 django 项目 第三十六课 后台文章管理(课堂笔记)

    get 请求, 1,获取文章标签 , 2,拿到前台传来的值, 3,根据前台传来的值在数据库中查询 4.,返回数据到前台,渲染, 分页算法 : 在 utils 下创建  paginator_script ...

随机推荐

  1. .gz解压

    1.今天很神奇我遇到这样的压缩包,啧啧啧,好少见的,记录下 gzip  -d  http_log.gz 这是讲http_log文件解压到当前的路径下

  2. Ajax 异步局部刷新

    Ajax 异步局部刷新 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页 ...

  3. Leetcode刷题第004天

    class Solution { public: int findKthLargest(vector<int>& nums, int k) { , nums.size()-, k) ...

  4. jQuery分步步骤

    插件描述:jQuery上一步.下一步,分步步骤,兼容性如下: 使用方法 1.引入样式和脚本 <link rel="stylesheet" type="text/cs ...

  5. mycat配置文件备份

    schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd&q ...

  6. (6).NET CORE微服务 Micro-Service ---- AOP框架

    AOP 框架基础 要求懂的知识:AOP.Filter.反射(Attribute). 如果直接使用 Polly,那么就会造成业务代码中混杂大量的业务无关代码.我们使用 AOP (如果不了解 AOP,请自 ...

  7. cookie实现刷新不变化树形菜单

    通过设置cookie来保存树形菜单的状态,在页面加载时重新读取cookie来设置菜单. 菜单的HTML结构: <div class="treemenu"> <ul ...

  8. Java LinqCollection 仿Linq的list常用函数

    目前支持find,findAll,sort,select,remove等,java不支持lamda函数,因此用接口代替 public interface Fun<T1,T2> { publ ...

  9. plink命令

    用plink远程登陆link主机执行脚本,但是无法执行sudo命令 完成后自己关闭 plink   -l  root   192.168.1.21  df -h plink.exe  -ssh  -p ...

  10. Python--os的常见方法

    1.os.getcwd()+'/filename'------>相当于在当前运行文件的目录下创建一个以filename命名的文件 2.os.path.realpath(__file__)---- ...