• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql分布式思想(十一)- MySQL Cluster_mysql

mysql 搞代码 7年前 (2018-06-07) 118次浏览 已收录 0个评论

mysql分布式思维(十一)- MySQL Cluster

mysql分布式思想(十一)- MySQL  Cluster_mysql
 一、数据切分及整合的中间件
     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簇的数据节点,管理服务器,以及(可能)专门的数据访问程序。

 

构成组件
管理(MGM)节点
数据节点
SQL节点

 

mysql分布式思想(十一)- MySQL  Cluster_mysql

cluster优缺点

 

能运行在普通硬件上,不需要专业的存
 
储设备
 
一个节点失败不会导致其他节点失败
 
需要较大的RAM(至少5.0版是有这个要
 
求的)
 
数据节点和前端(SQL节点)都可以避免
 
单点失效
 
数据的冗余是同步方式,不像复制采用
 
异步方式;一个数据节点实效,它的备份
 
节点的数据不会与其不一致
 
不能在线增加和舍弃节点(需要做全备
 
和恢复,需要重启整个cluster
 
本身不实现动态的负载均衡
 
管理复杂程度比复制高
 
目前应用的广泛程度远不及它的复制

 

不支持Full Text索引
 
自增长列必须是主键
 
不支持事务的部分回滚,重复键或者类似的错
 
误会导致整个事务回滚
 
只支持read committed隔离级别
 
varchar占用与char相同的空间
 
外键被忽略
 
保存点被忽略
 
执行范围扫描时,开销相对昂贵
 
最大节点数为63
 
数据节点最多为48
 
不适宜处理大事务
 
commit时不能保证日志刷新到硬盘
 
delete某个表的数据,释放的空间,只由在同
 
一个表的insert时再被使用,不会被其他表使用

欢迎大家阅读《mysql分布式思想(十一)- MySQL Cluster_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql分布式思想(十一)- MySQL Cluster_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址