zoukankan      html  css  js  c++  java
  • php实现实现代码多主从,切换,轮询,健康检查

    现在很多框架现在都提供数据库读写分离,比如CI,TP,YII,一般使用正则表达书判断sql语句是读操作,还是写操作,但是有个缺点,没有给用主动判断,比如写入操作必须去立即读取主数据库的,如果不能立即判断就有问题,因为主从数据同步是有

    时间延迟的,如果用比较烂一点办法,比如sheep 1秒,但是流量大的延迟就更大了,所有必须在读写数据库有灵活的操作

    本人现在在弄shopnc,个人觉得他们框架的做法有一个比较好,就是在实例化可以指定是主数据库还是从数据库,因为复杂的sql语句最好不要用框架自带的拼接的方法,因为有些特殊的sql语句需要使用mysql原声的方法,所以需要灵活操作,代码实现简单的

    办法,就是在实例化数据库方法的时候带上一个标记是使用主数据,或者从数据库的标记,比如 $master = ture,$master = false,也省了在数据库的中间件,节约了一台服务器

        上面说的是一主一从的情况,一主多从情况就需要就是需要在从数据库做个轮询的就可以了,下面有原理实现的简单代码

        多主多从不在此次讨论情况,因为情况比较复杂下次再说

      数据库健康检查和切换主要使用的mysql_ping()这个方法,吧php添加计划任务,比如5分钟执行一次,如果有从数据库ping不上就重新写数据库配置

     理论上的讨论到此,下面就是代码

  • 相关阅读:
    eclipse- DDMS截图功能使用
    宏-新项目物理按键不能用
    宏-宏的添加跟代码中的使用
    SQlite-数据库的访问实例(转)
    git 工具的使用总结(6)-提交合并处理
    git 工具的使用总结(5)-查看历史记录
    git -处理分支合并
    Linux查询网址
    SQLite常用网址
    Java查询网址
  • 原文地址:https://www.cnblogs.com/zx-admin/p/4444500.html
Copyright © 2011-2022 走看看