mysql分布式思维(十一)- MySQL Cluster
一、数据切分及整合的中间件
amoeba 是一个框架----->主要解决分布式数据存储后的整合的中间件
-----> amoeba for mysql 针对mysql数据库的
amoeba.xml文件 --->amoeba for mysql本身的一些信息配置
dbServers.xml文件---->主要配置代理的多个mysql数据源
rule.xml文件 ----->配置查询路由的
functionMap.xml文件---->配置用于解析query中的函数所对应的java类实现
rulefunctionMap.xml文件---->配置路由规则中需要使用到的特定的函数的实现类。
----->amoeba for aladdin 针对异构数据源的
----->amoeba for mongodb 针对Mongodb数据库
mysqlProxy+lua
cobar----》阿里巴巴解决异构数据源的代理的中间件--->开源的。
二、整合的问题
1.事务的问题
尽量降低一致性要求,采用消息机制,利用消息中间件
2.跨节点查询
join不能直接用了,多个query语句,并且做好query优化
3.跨节点合并排序
----->有些数据切分及整合的中间件已经帮我们实现了该功能。
----->join有顺序问题,排序没有驱动表和被驱动表的顺序问题
自己做可以效率上进行提高可以采用并行机制
三、MySQL Cluster
1.Cluster一般特指集群完全自动管理,不需要人为干预太多
2.mysql cluster
---->无共享存储设备的情况下实现的一种完全分布式数据库系统
---->NDB(NDB Cluster)存储引擎来实现
---->myisam,innodb存储引起在安装mysql server时就直接安装上了
---->ndb存储引擎要单独安装才可以。
---->数据既能直接放在内存,也能直接放在磁盘
----->现在mysql cluster还不是特别成熟,所以使用较少
----->国内有家企业 阿尔卡特朗讯 个别事业部有使用
法国那边修改过的,搭建的集群,国内使用,
它在使用的时候主要考虑的是实时数据,所以用的是内存存放数据。
----->mysql cluster集群的组成
---->1.sql服务器节点
就是mysql server
只做连接管理,query优化和响应,Cache管理等
不存放数据
----->2.storage节点
其实就是NDB节点,存储引擎
这个节点专门负责存储数据一出现至少两个,数据完全一样,实时同步。
----->3.负责管理各个节点的Manager节点主机
----->cluster的优缺点
MySQL簇是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL簇将标准的MySQL服务器与名为NDB的“内存中”簇式存储引擎集成了起来,MySQL簇由一组计算机构成,每台计算机上均运行着 多种进程,包括MySQL服务器,NDB簇的数据节点,管理服务器,以及(可能)专门的数据访问程序。
cluster优缺点