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

接上一篇:实战_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地址角色数据库
mycat1192.168.43.32MYCAT MYSQL,ZK,Haproxy,KeepalivedMYCAT,ORDER_DB01,ORDER_DB02
node1192.168.43.104MYSQL,ZKORDER_DB03,ORDER_DB04
node2192.168.43.217MYSQL,ZKPRODUCT_DB
mycat2192.168.43.172MYSQL,MYCAT,Haproxy,KeepalivedCUSTOMER_DB(master)
node3192.168.43.76MYSQLCUSTOMER_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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拒修电脑后,妹子又约我学机器学习,好烦(甜)!

事情是这样的,自前年给学妹修了半年电脑后,我俩一直没联系,最近这位学妹最近又联系我,问我是否了解人工智能, 在得知我已经研究并且从事相关工作后,她立马约我出来认真聊聊。我的内心:好烦啊&am…

2019年普通高等程序员招生统一考试

戳蓝字“CSDN云计算”关注我们哦!作者 | 表姐也有话讲来源 | 表哥有话讲2019年普通高等程序员招生统一考试题号一二三总得分一、选择题(每题5分,共计50分)1、SQL语句写了一天都没过,这个时候应该(&#xff…

php 内存队列,memcache构建简单的内存消息队列_PHP教程

本文章来给各位同学介绍使用memcache构建简单的内存消息队列,用一个比较不错的实例来给大家介绍,希望此方法对大家有帮助哦。memcache功能太简单了,只能 set get 和delete, 只能保存key-value的数据, 不能保存列表。 当然也可以把…

idea maven插件tomcat内存溢出

setting->>>Build,Execution->>>Deployment->>>Maven->>>Runner->>>VM Options 粘贴复制以下内容: -Xms1024M -Xmx2048M -XX:PermSize256M -XX:MaxNewSize256M -XX:MaxPermSize512m

搞不懂SDN?那是因为你没看这个小故事…

戳蓝字“CSDN云计算”关注我们哦!作者 | 小枣君来源 | 鲜枣课堂很久很久以前,有一个村子,名叫“通信童心村”。村里的每一户,都有一个男人和一个女人。每一户,都以搬砖为生。从不同的地方,搬到不同的地方。…

玩转 Linux 常用命令

Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各…

良心帖!看完这篇,你的 Python 入门基础就差不多了!

Python将纳入高考内容、小学生教材开始接触Python、Python列入全国计算机等级考试……全民学Python的话题铺天盖地,中国的Python学习者是全球第一,人才如此泛滥,甚至以后孩子都会,学习它还能体现自身高价值?30年前学英…

Idea 依赖冲突一分钟解决2种方案

文章目录一、Diagrams解决方案1.1. 在pom.xml文件中,右击选择【Diagrams】-【Show Dependencies】1.2. 找到冲突的依赖1.3. 问题定位1.4. 解决方案1.5. 具体实现思路1.5.1. 查看spring-context的全局控版本1.5.2. 找到需要排除activemq-core中的spring-context的3.0…

2019年技术盘点容器篇(一):听UCloud谈风生水起的K8S | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦!作者:刘晶晶据相关调研机构出具的报告数据显示,目前应用容器市场规模将从2016年的 7.62亿美元增长到2020年的27亿美元。显而易见,引入容器所展现的巨大灵活性有效推动了其采用速率,使企…

SpringBoot 整合ActiveMQ_企业实战

文章目录1. 新建Springboot工程2. 引入maven依赖3. ActiveMq配置类4. MQ生产者5. MQ 点对点消费者6. MQ 发布点阅消费者A7. MQ 发布点阅消费者B8. 统一测试类1. 新建Springboot工程 2. 引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <p…

Docker精华问答 |为什么巨头会支持Docker?

如今Docker的使用已经非常普遍&#xff0c;特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务&#xff0c;从而到达弹性部署业务的能力。在云服务概念兴起之后&#xff0c;Docker的使用场景和范围进一步发展。今天&#xff0c;就让我们来看看关于Docker的深度…

Unable to process Jar entry [module-info.class] from Jar

Unable to process Jar entry [module-info.class] from Jar [jar:file:/J:/rep/org/projectlombok/lombok/1.18.8/lombok-1.18.8.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 解决方案&…

linux的批处理进程,巧用linux-top的批处理模式

IT技术学习&#xff1a;一种是采用循序渐进的系统式学习&#xff1b;一种是采用“投机取巧”的碎片式学习。我这个人比较赖&#xff0c;也没有那些大牛执着的精神和水平&#xff0c;所以只能和大家分享后者命令简述top命令-是UNIN&&LINUX系统自带的系统管理工具。可以实…

最新突破!科学家研发出世界首款精神控制手臂机器人;近日Kubernetes 1.15 正式发布;雷军公布小米手机产品线布局……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 腾讯微信电子健康卡整体解决…

java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded

这个错误主要是因为spring的相关jar的版本号不一致导致的&#xff0c;所以用maven管理会好很多

一文读懂云计算和PAYG“现付现用”模型

戳蓝字“CSDN云计算”关注我们哦&#xff01;译者 | 风车云马或许您对云计算听的比较多&#xff0c;但是对于“现付现用”(Pay-As-You-Go,PAYG)模型是什么还不十分了解。简单地说&#xff0c;PAYG是一种“实用”计算模型&#xff0c;它允许用户根据使用的机器小时数或消耗的资源…

linux用户权限简介,Linux用户及权限管理

【文件管理、管道、用户及组管理、用户及权限管理】\用户及组管理用户与组管理Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。用户的账号一方…

Hadoop精华问答 | hadoop能干什么?

Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色&#xff0c;今天&#xff0c;就让我们看看关于Storm的精华问答吧。1Q&#xff1a;hadoop是什么A&#xff1a;Hadoop被公认是一套行业大数据标准开源软件&#xff0c…

linux xguest用户,在/etc/passwd中得到普通用户列表

/etc/passwd文件用来保存系统中当前所有的用户信息&#xff0c;该文件对所有用户都可见。在该文件中&#xff0c;每行信息代表一个用户。每个用户的信息由7部分组成&#xff1a;用户名&#xff1a;加密后的用户密码&#xff1a;用户ID(UID)&#xff1a;用户所在组ID(GID)&#…