php实现实现代码多主从,切换,轮询,健康检查
2015-04-21 15:34
218 查看
现在很多框架现在都提供数据库读写分离,比如CI,TP,YII,一般使用正则表达书判断sql语句是读操作,还是写操作,但是有个缺点,没有给用主动判断,比如写入操作必须去立即读取主数据库的,如果不能立即判断就有问题,因为主从数据同步是有
时间延迟的,如果用比较烂一点办法,比如sheep 1秒,但是流量大的延迟就更大了,所有必须在读写数据库有灵活的操作
本人现在在弄shopnc,个人觉得他们框架的做法有一个比较好,就是在实例化可以指定是主数据库还是从数据库,因为复杂的sql语句最好不要用框架自带的拼接的方法,因为有些特殊的sql语句需要使用mysql原声的方法,所以需要灵活操作,代码实现简单的
办法,就是在实例化数据库方法的时候带上一个标记是使用主数据,或者从数据库的标记,比如 $master = ture,$master = false,也省了在数据库的中间件,节约了一台服务器
上面说的是一主一从的情况,一主多从情况就需要就是需要在从数据库做个轮询的就可以了,下面有原理实现的简单代码
多主多从不在此次讨论情况,因为情况比较复杂下次再说
数据库健康检查和切换主要使用的mysql_ping()这个方法,吧php添加计划任务,比如5分钟执行一次,如果有从数据库ping不上就重新写数据库配置
理论上的讨论到此,下面就是代码
时间延迟的,如果用比较烂一点办法,比如sheep 1秒,但是流量大的延迟就更大了,所有必须在读写数据库有灵活的操作
本人现在在弄shopnc,个人觉得他们框架的做法有一个比较好,就是在实例化可以指定是主数据库还是从数据库,因为复杂的sql语句最好不要用框架自带的拼接的方法,因为有些特殊的sql语句需要使用mysql原声的方法,所以需要灵活操作,代码实现简单的
办法,就是在实例化数据库方法的时候带上一个标记是使用主数据,或者从数据库的标记,比如 $master = ture,$master = false,也省了在数据库的中间件,节约了一台服务器
上面说的是一主一从的情况,一主多从情况就需要就是需要在从数据库做个轮询的就可以了,下面有原理实现的简单代码
多主多从不在此次讨论情况,因为情况比较复杂下次再说
数据库健康检查和切换主要使用的mysql_ping()这个方法,吧php添加计划任务,比如5分钟执行一次,如果有从数据库ping不上就重新写数据库配置
理论上的讨论到此,下面就是代码
相关文章推荐
- PHP webshell检查工具 python实现代码
- PHP 开发学习[7] —— 代码实现主从数据库 读写分离
- PHP中根据IP地址判断城市实现城市切换或跳转代码
- redis主从配置及通过keepalived实现redis自动切换,redis主从实现10秒检查与恢复
- KeepAlived+Redis | 高可用 | 主从复制 | 健康检查 | 故障自动切换
- redis 主从备份自动切换+java代码实现类
- php实现首页链接查询 友情链接检查的代码
- PHP中根据IP地址判断城市实现城市切换或跳转代码
- PHP 中检查或过滤IP地址的实现代码
- PHP根据IP地址判断城市实现城市切换或跳转代码
- php代码上线,实现版本切换
- php实现首页链接查询 友情链接检查的代码
- PHP 中检查或过滤IP地址的实现代码
- php实现首页链接查询 友情链接检查的代码
- 【代码】PHP 生成GIF动画实现动态图片验证码
- PHP中利用sleep函数实现定时执行功能实现代码
- php实现单链表的实例代码