来源于Cobar,2014年之后在实际运用中销声匿迹。Cobar问题较多(假死、聚合、读写分离都存在问题、破坏数据)
假死的原因是因为Cobar的后端NIO未实现
为了解决跨分片join:参照FoundationDB的group表抽象为MyCAT中的ER模型
同库分表(分表)、异库分表(分库)。前者无法为IO减压、无法做含join的复杂操作,用于解决跨分片事务的问题,MyCAT预计2.0版本后实现。
MyCAT支持后者,用于分片的字段无法被修改
逻辑库可以与物理库不同名、逻辑表、物理表必须同名
MyCAT部署机器:192.168.237.15
DataNode1:237.15/3306
DataNode2:237.15/3307
DataNode3:237.15/3308
MyCAT需要JDK 1.7版本以上的环境支持。
https://github.com/MyCATApache/Mycat-download/tree/master/1.5-RELEASE
下载压缩包,解压至 /usr/local/mycat 下,权限设为mycat用户(组)
下面开始修改配置文件,位于 mycat/conf/ 目录下,最主要的有三个,分别为schema.xml、server.xml 和 wrapper.conf
1、schema.xml
修改数据节点信息:dataHost、database;数据源信息:url、user、password(连接后端MySQL的用户名、密码)
<dataNode name="dn1" dataHost="localhost" database="db1" />
<dataNode name="dn2" dataHost="localhost" database="db2" />
<dataNode name="dn3" dataHost="localhost" database="db3" />
<dataHost name="localhost" maxCon="1000" minCon="10" balance="0"
<writeHost host="hostM1" url="localhost:3306" user="root"
password="123456">
2、server.xml
配置登录MyCAT的用户名、密码,及权限
</system>
<user name="test">
<property name="password">test</property>
<property name="schemas">DB1,DB2,DB3</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">DB1</property>
<property name="readOnly">true</property>
</user>
<!--
<property name="serverPort">8066</property> <property name="managerPort">9066</property>
-->
默认数据端口:8066,管理端口:9066
3、wrapper.conf
mysql -h127.0.0.1 -utest -ptest -P9066
Mycat-eye
首先安装配置维护工具 Zookeeper
http://www.apache.org/dyn/closer.cgi/zookeeper/
下载压缩包,解压至 /usr/local/zookeeper 下
进入配置文件目录 conf:拷贝一个模板作为配置文件
# cp zoo_sample.cfg zoo.cfg
启动zk
/usr/local/zookeeper/bin/zkServer.sh start
对应端口
然后安装mycat-web
https://github.com/MyCATApache/Mycat-download/tree/master/mycat-web-1.0
下载压缩包,解压至 /usr/local/mycat-web 下
启动 /usr/local/mycat-web/start.sh &
对应端口
故需要 iptables 放行8082端口
之后就可以正常打开 http://192.168.237.15:8082/mycat/