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

MySQL分布式高可用的一个补充

这是学习笔记的第 2014 篇文章


前几天码了一篇迁移到MySQL的架构演进的文章,

  在这个基础上,我们对数据库层面的架构算是达到了一个稳定的状态,数据库实现了分布式,而且数据库间有MHA的高可用,听起来服务高可用应该差不多了,但是实际上还有较大的差距。

比如如下的分布式架构,实现了基于中间件的分库分表的方案。

640?wx_fmt=png

 但是这里有一个明显的问题,对于一个中间件来说,如果中间件所在的服务器出现故障或者中间件出现故障,这个时候该如何处理,我们早期的方式是手工的,即配置一个镜像节点,然后镜像节点作为备用,一旦出现了差异,应用端就需要修改IP切换到新的节点上。显然这种方式是手工高可用,如果是在节假日的时候发生,那么整个服务的不可用就会完全失控。 

所以我们需要考虑中间件的高可用,我们可以抽象一个代理层,即代理层来负责负载均衡,能够将请求分发至两个中间件节点,但是这又会引出一个新的问题,代理层是提供一个统一的入口来访问,代理层的高可用该怎么办呢,这就引出了另外一个问题。

所以问题看起来会越来越复杂,我们需要解决的就是这个层面的事情,我们可以考虑使用LVS+keepalive来完成这个代理层的高可用和负载均衡的配置。 

整个架构的设计方式如下图所示:

640?wx_fmt=png

LVS+keepalive负责上层的高可用,可以承接多套集群环境,可以是一种通用的解决方案。

640?

相关文章:

  • MySQL锁
  • 难忘的三件苦差事
  • 千与千寻,真是一部给大人看的动画片
  • 聊聊高考分数线和选择
  • MySQL中间件的连接错误问题排查
  • 一次宕机问题的总结复盘
  • 所谓简单的事情
  • 数据分析上千部动漫作品
  • 生活中的一些文字调料
  • 最近的方向调整
  • 尴尬的bug:一条查询语句让MySQL崩溃
  • 你平时锻炼身体吗
  • 数据迁移流程的优化
  • MySQL复制问题的分析
  • 秦皇岛旅游归来
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • React16时代,该用什么姿势写 React ?
  • Yeoman_Bower_Grunt
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 想写好前端,先练好内功
  • 走向全栈之MongoDB的使用
  • NLPIR智能语义技术让大数据挖掘更简单
  • 选择阿里云数据库HBase版十大理由
  • ​​​​​​​​​​​​​​Γ函数
  • ​Java并发新构件之Exchanger
  • ​卜东波研究员:高观点下的少儿计算思维
  • #控制台大学课堂点名问题_课堂随机点名
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (未解决)macOS matplotlib 中文是方框
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net MVC4 上传大文件,并保存表单
  • .NET Reactor简单使用教程
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .Net多线程总结
  • .net生成的类,跨工程调用显示注释
  • .Net中间语言BeforeFieldInit
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @RequestMapping处理请求异常
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [C++]——带你学习类和对象
  • [C++11 多线程同步] --- 条件变量的那些坑【条件变量信号丢失和条件变量虚假唤醒(spurious wakeup)】
  • [ES-5.6.12] x-pack ssl
  • [GXYCTF2019]BabySQli1
  • [LeetCode] Copy List with Random Pointer 拷贝带有随机指针的链表
  • [NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析
  • [OPEN SQL] 修改数据
  • [poj 2001]Shortest Prefixes [Trie]
  • [SCOI2010]传送带
  • [Uniapp]携带参数跳转界面(两种方法)