mysql读写主从配置

mysql读写主从配置

ID:34724698

大小:121.14 KB

页数:12页

时间:2019-03-10

mysql读写主从配置_第1页
mysql读写主从配置_第2页
mysql读写主从配置_第3页
mysql读写主从配置_第4页
mysql读写主从配置_第5页
资源描述:

《mysql读写主从配置》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、最近在研究Web服务端负载均衡方面的技术,参考网上资料,总体思路可以分为如下几类:1.应用服务器集群,典型的代表就是Nginx+Tomcat实现负载均衡;2.数据库集群。本文主要关注数据库集群。实现思路1.应用层解决方案通过应用层对数据源做路由来实现读写分离,项目是SpringMVC+myBatis,SQL路由交给Spring,通过AOP或者Annotation由代码显示的控制Datasource。优点是路由策略的扩展性和可控性较强。缺点是耦合到Spring;需要加入控制代码。2.中间件解决方案通

2、过mysql中间件做主从集群,MysqlProxy、Amoeba、Atlas等中间件貌似都能符合需求。优点是与应用层解耦。缺点是增加一个服务维护的风险点,性能及稳定性待测试,需要支持代码强制主从和事务。3.驱动解决方案Mysql自带的ReplicationDriver提供主从库访问的驱动,是通过保持多个数据源的链接并根据ReadOnlyTrue/False来选择数据源。相当于应用层解决方案的一个现有实现,扩展性更弱。并且貌似不能使用其他驱动。由于耦合较高暂不考虑。三种实现思路关键技术1.在应用层使

3、用Spring对数据源做路由,关键字:SpringAOP;2.增加中间代理层,Amoeba就属于这种情况,此外还有Mysql官方提供的MysqlProxy;3.在驱动层使用Mysql提供的主从库访问驱动,直接与数据库连接驱动耦合,扩展性弱,目前还未做原型尝试。综合上述分析,考虑到需要与应用层解耦,现采用中间件解决方案,使用Amoeba做SQL路由,实现数据库读写分离。既然选择使用Amoeba,让我们先了解什么是Amoeba?它能做什么?要怎么做?最后再看看它不能做什么。AmoebaAmoeba是什

4、么Amoeba(变形虫)项目,该开源框架于2008年开始发布一款AmoebaforMysql软件。详细资料可参阅Amoeba官方文档(需翻墙)。Amoeba能做什么Amoeba致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(DatabaseProxy)开发。座落与Client、DBServer(s)之间,对客户端透明。具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。通过A

5、moeba你能够完成多数据源的高可用、负载均衡、数据切片的功能。Amoeba不能做什么既然知道Amoeba能为我们解决什么问题,也要做到Amoeba不擅长的事情。这样在具体项目技术方案选择时,方能权衡考虑。Amoeba对于以下几点暂时无能为力:1.目前还不支持事务;2.暂时不支持存储过程,官方说近期会支持;3.不适合从Amoeba导数据的场景或者对大数据量查询的query并不合适,比如一次请求返回10w以上甚至更多数据的场合;4.暂时不支持分库分表,amoeba目前只做到分数据库实例,每个被切分的

6、节点需要保持库表结构一致。若实际项目中所需要的功能正式Amoeba的短板,建议使用MysqlProxy作为中间件,或者在应用层通过程序控制数据源,手动实现数据库读写分离。原型环境1.服务器AIP:1XX.XX.XX.181运行Mysql主数据库和Amoeba。2.服务器BIP:1XX.XX.XX.182运行Mysql从数据库。3.服务器CIP:1XX.XX.XX.183运行Mysql从数据库。OS版本。[root@chenllcentos ~]# cat /etc/redhat-release C

7、entOS release 6.5 (Final)具体实现Mysql数据库读写分离的具体实现主要包括两个部分配置,即数据主从复制和Amoeba代理,现分别进行介绍。主从复制为什么要进行主从复制呢,其实很容易理解,因为数据要同步啊。查看服务器A是否已经安装Mysql数据库。[root@chenllcentos ~]# rpm -aq 

8、 grep mysql若无消息显示,则进行Mysql安装,否则跳过此步骤。yum install -y mysql-server mysql mysql-devel 

9、mysql-libsMysql安装完毕,默认开机不启动Mysql服务。[root@chenllcentos ~]# chkconfig --list 

10、 grep mysqldmysqld          0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭现在我们更改下配置,让Mysql开机启动。[root@chenllcentos ~]# chkconfig mysqld on[root@chenllcentos ~]# c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。