论坛首页 综合技术论坛

mysql读写分离问题

浏览 13552 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-09-21  
目前实现了master和slave,目前使用Amoeba 实现读写分离。

Q4准备在项目中实现,读写分离,不再依赖第三方工具实现,这样更易于控制。

1.请问若增加N台slave服务器,如果实现负载均衡?需要什么工具?mysql proxy使用过,感觉不稳定。
2.master有没有负载均衡的方案?两台服务器同时运行,提供服务,一台故障,服务转向正常的那台。如果说热备份,其中一台只能处于运行状态,但不能提供服务,感觉有些浪费。
   发表时间:2010-09-21  
http://www.infoq.com/cn/articles/yupoo-partition-database

有些内容可以参考下,上面的文章
0 请登录后投票
   发表时间:2010-09-21  
谢谢,这类文章早研究过了。

我目前的主要问题不是如何分表分库,目前有条件,对整个库做多slave,要解决的是多个slave,如何读取的问题。
其中一台挂掉,自动连接至另一台,两台slave相互负载。
0 请登录后投票
   发表时间:2010-09-28  
你可以自己编写一个检测器啊,可以是定时的对slave和master发出连接请求,或者探测端口,有回应就证明没宕机,不回应就不把负载分到这台已经证明宕机的slave上,应该可以..
0 请登录后投票
   发表时间:2010-09-28  
hunkguo 写道
目前实现了master和slave,目前使用Amoeba 实现读写分离。

Q4准备在项目中实现,读写分离,不再依赖第三方工具实现,这样更易于控制。

1.请问若增加N台slave服务器,如果实现负载均衡?需要什么工具?mysql proxy使用过,感觉不稳定。
2.master有没有负载均衡的方案?两台服务器同时运行,提供服务,一台故障,服务转向正常的那台。如果说热备份,其中一台只能处于运行状态,但不能提供服务,感觉有些浪费。


1. 自己做的就是话就是轮询。如果使用框架,可以用guzz,在应用段实现主从分离和从库负载均衡。使用多少数据库,怎么分表,在配置文件里面配置,需要加机器的时候增加配置项就行。

2. 多master有2个方案。1是建立多组数据库,把表分到不同的数据库组上,每个组1个master,实现多个主,但是每个主自身还是单点;优点是1个master挂了不会影响所有业务。 2是集群,集群的话比较费钱,需要光纤小内网。mysql好像没有别的开源方案了。
0 请登录后投票
   发表时间:2010-09-29  
主从已经不错了,要考虑down机的情况,也不需要进行数据迁移,直接切到主DB撑一段时间也未尝不可
0 请登录后投票
   发表时间:2010-09-29  
多Slave做负载均衡的方式可以采用如下方式:
1.将Slave的机器列表推动到客户端,客户端从Slave列表中随机选取进行访问
2.Slave机器的可用性状态监听,监听到Slave机器状态发上变化(可用<---->不可用),重新推送Slave列表,保证访问的可用性

至于数据推送的工具,建议研究一下Hadoop的子项目Zookeeper。
0 请登录后投票
   发表时间:2010-09-29  
至于双Master的问题,个人觉得Master出问题的话肯定是要人工参与的,Master宕机引起的问题是写请求失败,当Master发生宕机的时候可在App端记录Sql日志,待人工解决Master问题之后再进行数据订正的工作。
0 请登录后投票
   发表时间:2010-09-29  
目前主要希望解决多Slave的问题。

master可以用HA等热备份解决,日后再考虑。



“2.Slave机器的可用性状态监听,监听到Slave机器状态发上变化(可用<---->不可用),重新推送Slave列表,保证访问的可用性”
理论上都明白,只是是否有运用到生产环境的成熟方案?

Zookeeper我会继续了解下。
0 请登录后投票
   发表时间:2010-10-01   最后修改:2010-10-01
双master好像不太稳定。
一台master专门写入,N台slave只读这个方案最简单,也最省钱,不需要任何第三方的软件或硬件,负载大了之后就按表、字段分开部署,轻松应对几千万用户的网站。读取时通过程序slave列表中随机选一个,如果slave挂掉就排除该slave,如果master挂掉选择一个slave临时当master,先保证服务正常,然后再查找故障原因。以前我们公司都是人工处理这些事情的,服务挂掉监控程序发短消息提醒运维。如果要保证24小时正常运行,没有专业设备恐怕很难。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics