您的位置:首页 > 数据库 > MySQL

Mysql 读写分离实现及代理Amoeba的使用

2016-01-24 22:32 585 查看
1.主从复制
实现读写分离的基础是先行搭建MySQL主从复制关系,这里注意MySQL5.1~5.5的复制功能是异步的。主从复制的具体过程不再做描述,具体在实践过程中出现最多的问题就是:
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
这两项必须都为yes,如果Slave_IO_Running为no,解决的方法市县区看mysqld.log这个日志文件,检查问题出在网络还是二进制文件,如果网络没问题,则重置master之后重新授权,之后刷新权限(尤其注意 Master_Log_File: mysql-bin.000022这个属性之必须和主库中一致)。



图1.主库



图2.从库
2.读写分离
mysql读写分离的意义就在于利用它可以主从复制的性质,在操作数据库的时候,从库只负责读数据,主库负责写入,更新数据,这样的分离操作在读写不平衡的场景下意义重大。在高并发访问量极大的情况下,如果大多数操作都是查询操作,那么服务器的压力就在只负责查询的slaves上,而具体的调度规则可以按照实际情况分配。



Amoeba代理的好用之处在于配置简单而且提供了负载均衡的策略。Amoeba与数据库交互的过程如下:



Amoeba for Mysql中快速配置库:
amoeba.xml
dbServers.xml
基本配置都在以上两个文件中,配置方法也根据官网文件都很详细。
Amoeba在 Master/Slave 结构之下的读 写分离 :



最后测试阶段在java代码中只需要和以前一样加入mysql的驱动包,把端口改成8066或者自己设置的代理端口即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: