先说下项目情况,数据库是只用于管理后台供管理员配置使用,不影响任何业务的主流程,单机房可以满足需求。 可是客户非要求用双机房双写,本着简单解决问题的想法,我们就打算采用单点写双读。可是结果。。。。郁闷的是,人家都懒得跟我们说一声原因,怎么问都往数据不一致问题上绕,,单写!额。。。开发工期很紧,我们先开发了,到最后都部署了,又跟客户沟通数据库同步问题。这次在绕了好几天后,dba终于开口说,原因是Mysql本身的复制机制在跨机房情况下不可靠。泪奔.......
? otter开源了,这个时间点太好了,刚好能用上,ye!向otter的开发者致敬!
? otter的wiki页面:https://github.com/alibaba/otter
?
? otter的环境需要:mysql? ,jdk, zookeeper , node , aria2 , manager
为了防止otter的闪断,我把一些软件上传到了百度云上:
? ? http://pan.baidu.com/share/link?uk=3708161223&shareid=2987646776#dir
其他的就不说了,直接说安装和使用。
1 安装mysql,? jdk ,zookeeper
?otter只支持5.5及以下版本的Mysql,不支持maridb
此处假设安装了数据库A:192.168.85.10:3306
数据库B: 192.168.85.11:3306
jdk,我安装的是7,安装完后,配置环境变量
zookeeper,可以只安装一个,可以以集群形式安装。
我现在只安装了一个,zookeeper的地址:?192.168.85.10:2181
? 2 安装node和aria2
node 需要aria2支持,我是在AB机房各安装了一套。
?安装node:
? ? 创建目录:mkdir node
? 进入目录:cd? node
? 下载node:
? 解压缩:tar?zxvf?node.deployer-$version.tar.gz
? ? 修改node的配置:vi conf/otter.properties
otter.manager.address=172.20.150.70:1099##对用manager中otter.properties的配置otter.communication.manager.port
? ? node的启动/停止:
? ? cd bin
? ?startup.sh/stop.sh
? ?
? 安装aria2:
下载aria2:
解压缩:tar?zxvf?aria2-$version.tar.gz
为了方便切换目录:mv aria2-$version aria2
进入目录: cd aria2
编译: