zoukankan      html  css  js  c++  java
  • MyCat 看了这篇什么都会了

    1、什么是MyCat

    1、一个彻底开源的,面向企业应用开发的大数据库集群       2、支持事务、ACID、可以替代MySQL的加强版数据库        3、一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群      4、一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server      5、结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品      6、一个新颖的数据库中间件产品

     

    2、为什么使用MyCat

    如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储,为应对此问题就出现了——MyCat 

      综上所述:Mycat作用为:能满足数据库数据大量存储;提高了查询性能

    3、支持的数据库

    支持MySQL ORACLE SQLServer等一些主流的数据库

     
     

    4、核心技术(分库分表)

    数据库分片指:通过某种特定的条件,将我们存放在一个数据库中的数据分散存放在不同的多个数据库(主机)中,这样来达到分散单台设备的负载,根据切片规则,可分为以下两种切片模式

     
     

    MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法 

    1.Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。 

    2.Table:逻辑表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode。在此可以指定表的分片规则。 

    3.DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联到后端某个具体数据库上 

    4.DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上

    5、分片规则:前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难

    5、Mycat的下载及安装

    1、jdk:要求jdk必须是1.7及以上版本     2、Mysql:推荐mysql是5.5以上版本      3、Mycat:  Mycat的官方网站:http://www.mycat.org.cn/      下载地址:  https://github.com/MyCATApache/Mycat-download 

    Mycat有windows、linux多种版本。本教程为linux安装步骤,windows基本相同。  第一步:下载Mycat-server-xxxx-linux.tar.gz     第二步:将压缩包解压缩。建议将mycat放到/usr/local/mycat目录下。    第三步:进入mycat目录,启动mycat./mycat start   停止:./mycat stop    mycat支持的命令{ console | start | stop | restart | status | dump }   Mycat的默认端口号为:8066

    6、需求及安装环境分析

    需求是把商品表分片存储到三个数据节点上。安装环境   两台mysql数据库服务器:Host1:192.168.25.134  Host2:192.168.25.166        host1环境   操作系统版本: centos6.4      数据库版本: mysql-5.6    mycat版本 :1.4 release     数据库名: db1、db3      mysql节点2环境    操作系统版本: centos6.4             数据库版本: mysql-5.6      mycat版本 :1.4 release       数据库名: db2    MyCat安装到节点1上(需要安装jdk)

    7、配置文件的相关配置

     
     
     
     

    配置完成后进行分片测试

     
     

    Mycat的读写分离是建立在Mysq的主从复制的基础上的,Mysql的读写分离这里就不再做过多的赘述

    Mycat 1.4 支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下

     
     

    (1) 设置balance="1"与writeType="0"

    Balance参数设置:

    1. balance=“0”, 所有读操作都发送到当前可用的writeHost上。

    2. balance=“1”,所有读操作都随机的发送到readHost。

    3. balance=“2”,所有读操作都随机的在writeHost、readhost上分发

    WriteType参数设置:

    1. writeType=“0”, 所有写操作都发送到可用的writeHost上。

    2. writeType=“1”,所有写操作都随机的发送到readHost。

    3. writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

     “readHost是从属于writeHost的,即意味着它从那个writeHost获取同步数据,因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即“不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个writeHost并设置banlance=1。”

    (2) 设置switchType="2" 与slaveThreshold="100"

    switchType 目前有三种选择:

    -1表示不自动切换

    1 默认值,自动切换

    2 基于MySQL主从同步的状态决定是否切换

    “Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性: switchType="2" 与slaveThreshold="100",此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制。Mycat心跳机制通过检测 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延。“



    作者:木迪_2a4e
    链接:https://www.jianshu.com/p/c6e29d724fca
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    elasticsearch-排序(六)
    elasticsearch-分词器(五)
    elasticsearch-搜索-基本搜索(四)
    elasticsearch-文档(三)
    elasticsearch-集群(二)
    FFmpeg架构之I/O模块分析
    DirectShow 在 VS2010 中开发环境的设置
    预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
    2012年软件开发者薪资调查报告
    深入了解 VP8
  • 原文地址:https://www.cnblogs.com/xiaobug/p/11062692.html
Copyright © 2011-2022 走看看