mysql系列之7.mysql读写分离
准备
下载如下linux安装包
jdk-6u31-linux-x64-rpm.bin
amoeba-mysql-binary-2.2.0.tar.gz
# crontab -e //同步时间
*/ * * * * /usr/sbin/ntpdate 172.16.0.1 &>/dev/null
# service iptables stop //这几台服务器都要关闭防火墙
配置主从复制架构: 多主机 (ip和名称定义)
192.168.1.25 master
192.168.1.30 slave1
192.168.1.35 slave2
192.168.1.147 amoeba
正式开始...
1.java
安装java
# cp jdk-6u31-linux-x64-rpm.bin /usr/local/
# cd /usr/local
# chmod +x jdk-6u31-linux-x64-rpm.bin
# ./jdk-6u31-linux-x64-rpm.bin
加入环境变量
# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest export PATH=$JAVA_HOME/bin:$PATH
验证jdk
# source /etc/profile //必须加上这句使java配置生效
# java -version
2.安装amoeba
# mkdir -p /usr/local/amoeba
# tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba //使用二进制安装
# cd /usr/local/amoeba
# bin/amoeba start //前台运行
# nohup /usr/local/amoeba/bin/amoeba start & //后台运行
3.配置amoeba
# cd /usr/local/amoeba/conf
# vi ameoba.xml //前端配置文件, amoeba接口配置信息
<property name=</property> <!-- amoeba被访问的端口 --> <property name="user">root</property> <!-- 用户名 --> <property name="password"></property> <!-- 密码 --> <property name="defaultPool">wp</property> <!-- 默认服务器池 --> <property name="writePool">wp</property> <!-- 写操作的虚拟服务器池 --> <property name="readPool">rp</property> <!-- 读操作的虚拟服务器池 -->
# vi dbServers.xml //后端配置文件, amoeba访问mysql的配置信息
<property name=</property> <!-- mysql被访问的端口 --> <property name="schema">test</property> <property name="user">root</property> <!-- mysql用户名 --> <property name="password"></property> <!-- mysql密码 --> <!-- 主服务器 --> <dbServer name="master" parent="abstractServer"> <factoryConfig> <property name="ipAddress">192.168.1.25</property> </factoryConfig> </dbServer> <!-- 从服务器1 --> <dbServer name="slave1" parent="abstractServer"> <factoryConfig> <property name="ipAddress">192.168.1.30</property> </factoryConfig> </dbServer> <!-- 从服务器2 --> <dbServer name="slave2" parent="abstractServer"> <factoryConfig> <property name="ipAddress">192.168.1.35</property> </factoryConfig> </dbServer> <!-- 写池: master --> <dbServer name="wp" virtual="true"> <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> <property name=</property> <property name="poolNames">master</property> </poolConfig> </dbServer> <!-- 读池: slave1,slave2 --> <dbServer name="rp" virtual="true"> <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> <property name=</property> <!-- 1表示轮询 --> <property name="poolNames">slave1,slave2</property> </poolConfig> </dbServer>
4.测试:
从amoeba接口登录, 创建数据库db2后,再从主库的接口中去查询数据库是否已创建,如是则说明写入确实是落在了主库节点上
若要验证ameoba对于读操作的调度,则需要暂时停止从库的复制操作,然后在主库上更新数据,这样从ameoba接口登录来读取数据将出现不一致的情况
;
最新文章
- Angular 之坑??
- jQuery 一句代码返回顶部
- js_保留关键字
- 使用 AdaBoost 元算法提高分类器性能
- 一些XMLHttpRequest的例子代码
- CSS层次选择器温故-2
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转载)
- Installing Ruby 1.9.3 on Ubuntu 12.04 Precise Pengolin (without RVM)
- [Objective-c 基础 - 3.3] @property属性详解
- Nginx 配置指令的执行顺序(六)
- 第十一条:谨慎的覆盖clone()方法
- luogu P1600 天天爱跑步
- 2015年蓝桥杯省赛A组c++第5题(回溯算法填空)
- Kattis之旅——Perfect Pth Powers
- 分享一下个人学PS的过程
- 常见的网络攻击(XSS,SQL注入,CSRF)
- Linux下使用thrfit
- Android中播放本地SD卡中歌曲须要的加入的权限
- 转!!mybatis xml 传值 if test判断
- 数据库 MySQL part4
热门文章
- [Python Debug] SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
- Unity -- 使用easyAR的基础教程
- ArcGIS教程:公布地理处理服务
- 网上常用免费webservice_查询(网络复制)
- 推荐系统中的注意力机制——阿里深度兴趣网络(DIN)
- masm学习
- Linux系统救援模式应用:单用户模式找回密码
- 【唯星宠物】——BootStrap/Mysql/PHP/Ajax爬坑之正则验证登录注册子页
- 2016.10.17 yaml文件里的labels和Pod、RC、Service的对应关系
- vue v-for与v-if组合使用