MyCat的使用

MyCat的使用

Mycat 背后是阿里曾经开源的知名产品——Cobar。Cobar 的核心功能和优势是 MySQL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 很精通,后来从阿里跳槽了,阿里随后开源的 Cobar,并维持到 2013 年年初,然后,就没有然后了。

Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在哪里摆着。

Mycat 是基于 cobar 演变而来,对 cobar 的代码进行了彻底的重构,使用 NIO 重构了网络模块,并且优化了 Buffer 内核,增强了聚合,Join 等基本特性,同时兼容绝大多数数据库成为通用的数据库中间件。

简单的说,MyCAT就是:一个新颖的数据库中间件产品支持mysql集群,或者mariadb cluster,提供高可用性数据分片集群。你可以像使用mysql一样使用mycat。对于开发人员来说根本感觉不到mycat的存在。

mycat 支持的命令{ console | start | stop | restart | status | dump }

Mycat的默认端口号为:8066
MyCat的配置
1.Server.xml

MyCat虚拟数据库的用户名和密码

<!--用户名-->
<user name="root">
<!--密码-->
<property name="password">123456</property>
<property name="schemas">TESTDB</property> <!--虚拟数据库名-->
</user>
2.schema.xml
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> 
  <!--虚拟数据库的表名t_test ,dataNode是数据节点 ,rule是分片规则-->
<table name="t_test" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
   <!--虚拟数据库的表名t_order-->
<table name="t_order" dataNode="dn1,dn2,dn3" rule="sharding-by-murmur-order" />
</schema>
<!--dataHost是节点主机 database是每个节点的数据库名称-->
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!--MySql的配置-->
<writeHost host="hostM1" url="192.168.25.128:3306" user="root"
 password="123456">  
</writeHost>
3.rule.xml中添加规则
<tableRule name="sharding-by-murmur-order"> 
<rule>
 <columns>order_id</columns>
 <algorithm>murmur</algorithm>
</rule>
</tableRule>


发表评论