强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
【前言】
在智能云平台的上篇博文 《智能云平台(二十二):多租户方案比较Hibernate、EclipseLink、Mybatis+Mycat》中讲解了实
现多租户的一种方案是用MySql的中间件来实现;今天为大家分享一下MySQL中间件(在此以MyCat)高可用的方案;
【探索之路】
一、云平台建库后Mycat识别的问题
为什么要用zookeeper当热更改的通知组件?zookeeper是分布式协调中间件,如有结点变动会通知到所有监听方,基
于此特性我们决定采用zookeeper来实现新建立租户后新给这个租户建立一套实例库。
二、整个流程的高可用的实现
1、Mycat是如何使mysql实现高可用,架构图如下:
2、那mycat的本身高可用是如何做的那?
(1)可以利用Haprox对Mycat进行负载,架构图如下:
(2)那么如何保证Haproxy的高可用那?可以利用Keepalived来做,相应的架构图如下:
3、我的疑问
keepalived+nginx 实现高可用的时候Nginx监听的是自己的IP,但是Keepalived+HAproxy时HAproxy配置的是虚拟
的IP,这个疑问还需要在去看其实现原理。
4、一些经验:
(1)上面架构图的实现在Mycat的官网指南的PDF(MyCat官方指南)上写的十分详细;大家在实践的时候如果需
要直接从PDF上粘贴命令的时候需要留意空格,因为PDF上空格的格式和命令中不一致,如果命令执行出错检查可以删掉空格重
新用英文键盘输入空格。
(2)运行脚本,需要给当前用户分配执行脚本的权限。
【总结】
根据一条需求来理,比如在这个过程中理解HAproxy,Mycat的作用,先从mysql捯饬起来,理到它有什么痛点(比如mysq单点问题,读写分离如何让业务层无感知),然后新的技术方案出来后如何解决原有问题,会引入什么新的问题。