cobar-github:https://github.com/alibaba/cobar/wiki
运行环境:
- 主机1:Ubuntu14.04 Desktop + MySQL5.5 + JDK 1.7(HP Z400) 内网IP地址:192.168.137.8
- NODE1:Ubuntu 13.04 server + MySQL5.5 内网IP地址:192.168.137.31
- NODE2:Ubuntu 13.04 server + MySQL5.5 内网IP地址:192.168.137.32
注:(NODE1和NODE2运行于XEN虚拟化平台,硬件环境HP Z800)
Cobar最主要解决的问题是:分布式和HA。
分布式:主要是通过将同一个表的数据拆分成多个,放入不同的数据库实例,查询的时候也会按照同样的操作方式,来更新具体数据库实例中的对应的数据。
HA:高可用性,在设置了MYSQL心跳的情况下,如果主数据库发生了异常,Cobar会自动连接从数据库,如果主数据库恢复正常,只能手动恢复到主数据库。Cobar只负责切换数据库实例,不负责主从数据库的同步,所以需要提前将主从数据库设置双向同步。
存在的不足:
- (1).不支持跨库情况下的join、分页、排序、子查询操作。
- (2).SET语句执行会被忽略,事务和字符集设置除外。
- (3).分库情况下,insert语句必须包含拆分字段列名。
- (4).分库情况下,update语句不能更新拆分字段的值。
- (5).不支持SAVEPOINT操作。
- (6).暂时只支持MySQL数据节点。
- (7).使用JDBC时,不支持rewriteBatchedStatements=true参数设置(默认为false)。
- (8).使用JDBC时,不支持useServerPrepStmts=true参数设置(默认为false)。
- (9).使用JDBC时,BLOB, BINARY, VARBINARY字段不能使用setBlob()或setBinaryStream()方法设置参数。
当然,如果想努力实现这些功能,可以fork官方的源码:https://github.com/alibaba/cobar
使用方法:
参考github:https://github.com/alibaba/cobar/wiki 或 http://blog.geekcome.com/archives/252