接上一篇:实战_22_Mycat设置开机自启https://blog.csdn.net/weixin_40816738/article/details/100086556

文章目录

  • 一、高可用集群架构实现思路
  • 二、环境部署准备
    • 2.1. 环境部署总览
    • 2.2. 架构图总览
    • 2.3. 架构图解说明
  • 三、架构功能分析
    • 3.1. 场景案例分析
    • 3.2. 架构功能点分析
    • 3.3. 扩展功能能分析
    • 3.4. MyCat UI效果图
    • 3.5. Haproxy 监控页面

一、高可用集群架构实现思路

实现思路:
①MYCAT 作为数据库中间层,以逻辑库来操作后台物理库
②MYCAT集群之间数据同步,借助ZooKeeper集群来实现高可用
③MYCAT负载均衡,借助Haproxy来实现
④Haproxy高可用,借助Keepalived来实现
⑤订单表水平分库分表,数据库切分4片
⑥商品和客户数据垂直拆分,采用读写分离(基于主从复制)


二、环境部署准备

2.1. 环境部署总览

主机名 IP地址 角色 数据库
mycat1 192.168.43.32 MYCAT MYSQL,ZK,Haproxy,Keepalived MYCAT,ORDER_DB01,ORDER_DB02
node1 192.168.43.104 MYSQL,ZK ORDER_DB03,ORDER_DB04
node2 192.168.43.217 MYSQL,ZK PRODUCT_DB
mycat2 192.168.43.172 MYSQL,MYCAT,Haproxy,Keepalived CUSTOMER_DB(master)
node3 192.168.43.76 MYSQL CUSTOMER_DB(slave)

2.2. 架构图总览


2.3. 架构图解说明

1、MYSQL商品模块和客户模块采用数据库垂直在拆分,数据库对于大数量级别的数据进行分库分表操作。
举个栗子:订单模块进行水平扩展,分库分表,切分4片;商品模块和客户模块数据库进行主从复制,读写分离。

2、MYCAT采用集群部署,MYCAT集群之间借助ZK集群(3个节点)来实现配置文件数据同步和ZK高可用。
举个栗子:MYCAT集群之间配置文件信息同步,只需要修改ZK集群中的MyCat数据,就可以同步到MYCAT采用集群中,MYCAT不做任何操作。

3、HAProxy 实现了Mycat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过Keepalived来实现
因此, HAProxy 主机上要同时安装 HAProxy 和 Keepalived, Keepalived 负责为该服务器抢占 vip(虚拟 ip,图中的 192.168.43.100),抢占到 vip 后,对该主机的访问可以通过原来的 ip(192.168.43.32)访问,也可以直接通过 vip(192.168.43.172)访问。

4、Keepalived 抢占 vip 有优先级, 在 keepalived.conf 配置中的 priority 属性权重决定。但是一般哪台主机上的 Keepalived服务先启动就会抢占到 vip,即使是 slave。

5、HAProxy 负责将对 vip 的请求分发到 Mycat 集群节点上, 起到负载均衡的作用。 同时 HAProxy 也能检测到 Mycat 是否存活, HAProxy 只会将请求转发到存活的 Mycat 上。

6、如果 Keepalived+HAProxy 高可用集群中的一台服务器宕机, 集群中另外一台服务器上的 Keepalived会立刻抢占 vip 并接管服务, 此时抢占了 vip 的 HAProxy 节点可以继续提供服务。

7、如果一台 Mycat 服务器宕机, HAPorxy 转发请求时不会转发到宕机的 Mycat 上,所以 Mycat 依然可用。

综上: Mycat 的高可用及负载均衡由 HAProxy 来实现,而 HAProxy 的高可用,由 Keepalived 来实现。

三、架构功能分析

当前架构,MYCAT已实现负载均衡,Haproxy高可用,MYSQL根据模块需求应用场景不同已实现符合需求的高可用。

3.1. 场景案例分析

场景 实施方案
订单数据量级别比较大 对订单表已实现水平扩展,分库分表
查询次数频繁数据量级不大 对此模块已实现垂直拆分,读写分离(基于主从复制)

3.2. 架构功能点分析

当前架构已实现的功能点:

①MYCAT 作为数据库中间层,以逻辑库来操作后台物理库
②MYCAT集群之间数据同步,借助ZooKeeper集群来实现高可用
③MYCAT负载均衡,借助Haproxy来实现
④Haproxy高可用,借助Keepalived来实现
⑤订单表水平分库分表,数据库切分4片
⑥商品和客户数据垂直拆分,采用读写分离(基于主从复制)
⑦当前架构已实现跨分片查询
1>字典类型 解决方案 全局表
2> 查询次数多 字段多 调用频繁 实现跨分片查询 解决方案 ER分片

3.3. 扩展功能能分析

①当前架构已实现跨全局自增ID,解决ID重复问题
②已实现SQL拦截
1>对于delete 没有where条件,会进行sql拦截
2>对于update和delete影响范围大的操作,会进行sql拦截

③SQL防火墙已经实现,可以指定服务器和用户访问MYCAT

MYCAT web监控后台已经集成,可以监控MYCAT ,MYSQL数据库,SQL语句等功能

3.4. MyCat UI效果图







3.5. Haproxy 监控页面

http://192.xxx.43.32:48800/admin-status

http://192.168.43.172:48800/admin-status

实战_23_高可用负载均衡集群的实现(Mycat+ZK +HAProxy + Keepalived)相关推荐

  1. IPVS-DR+keepalived实现高可用负载均衡集群

    IPVS-DR+keepalived高可用负载均衡集群方案前端的负载调度器采用双机热备方式,Keepalived主要用来监测RealServer的健康状态以及主负载均衡器和备份负载均衡器之间的故障转移 ...

  2. keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...

    概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...

  3. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群

    一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...

  4. RHCS套件实现高可用负载均衡集群(三)——共享存储

    注:此博文在博文"RHCS套件实现高可用负载均衡集群(二)"的基础上完成 实验开始前设置实验环境 target端配置--server3 [root@server3 ~]# yum ...

  5. RHCS套件实现高可用负载均衡集群(二)——Fence设备

    注:此博文在博文"套件实现高可用负载均衡集群(一)"的基础上完成 环境: 物理机:172.25.54.250,作为fence server1:172.25.54.1 , serve ...

  6. Keepalived+Nginx实现高可用负载均衡集群

    转载自 https://www.cnblogs.com/mrlapulga/p/6857294.html 一 环境介绍 1.操作系统 CentOS Linux release 7.2.1511 (Co ...

  7. RabbitMQ:使用Docker构建RabbitMQ高可用负载均衡集群

    目录 一.构建RabbitMQ集群 1. 启动多个RabbitMQ节点 2. 加入集群 3. 配置镜像队列 二.HAProxy负载均衡 1. 安装HAProxy 2. 配置HAProxy 3. 启动 ...

  8. 汇总-13台虚拟机搭建一个高可用负载均衡集群架构

    要求 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,具体需求如下. 设计你认为合理的架构,用visio把架构图画出来 搭建lnmp.tomcat+jdk环境 三个站点分别为:dis ...

  9. LVS+keepalived高可用负载均衡集群部署(一) ----数据库的读写分离

    l  系统环境: RHEL7 l  硬件环境:虚拟机 l  项目描述:为解决网站访问压力大的问题,需要搭建高可用.负载均衡的 web集群. l  架构说明:整个服务架构采用功能分离的方式部署.后端采用 ...

最新文章

  1. mysql show命令用不了_MySQL show命令的用法 | 很文博客
  2. ubuntu20.04 中ifconfig无ens33
  3. ICML 2020: 从Alignment 和 Uniformity的角度理解对比表征学习
  4. 如何解决Bluetooth系统设计的棘手问题
  5. DataUml Design 介绍8-DataUML 1.2版本正式发布
  6. 出租车管理系统java_基于jsp的出租车管理系统-JavaEE实现出租车管理系统 - java项目源码...
  7. Java银行类编程题
  8. 利用console控制台调试php代码
  9. 基本运算符中Swift和Java的比较
  10. 190124每日一句
  11. echarts3d城市配置项
  12. 金融业务系统日志精益化分析
  13. pygame笔记(更新中
  14. 历程篇 之 我的 2019 (历时一年,只为记录美好生活~)
  15. SQLZOOL练习题答案和解析 第2关 SELECT from World
  16. 使用PIL剪切图片和拼接图片
  17. 默然回首繁忙而充实的2016
  18. 软件测试是什么?具体的工作内容是什么?有前途吗?
  19. 文件夹加密和电脑加密软件哪个好?隐身侠和360密盘哪个好?加密软件推永久免费版还抽奖...
  20. java练习 车费问题

热门文章

  1. 3w最简单led灯电路图_Mixly 第19课 光感应灯——光敏电阻使用
  2. android百度多渠道打包,Android多渠道打包方案的实践与优化
  3. VS2010项目配置详解
  4. ros(7)自定义service数据
  5. ubuntu16.04下安装opencv3.2版本
  6. 2021中国数字服务大会 | 阿里云混合云新一代运维演进与实践
  7. 独家 | 2021双11背后的数据库硬核科技
  8. Quick BI电子表格: 新手亦可表格自由
  9. 阿里云推出全新内存增强型实例re6,性能提升30%
  10. 假如古代有了云计算,延禧攻略里的各位嫔妃要如何宫斗