mysql 架构 ~ 尝试驱动解决读写分离问题

一 简介 ReplicationDriver 程序实现读写分离

二 如何使用

    1 配置访问串 

      类似 address=(host=192.168.5.128)(port=3306)(type=master/slave)

    完整串 jdbc:mysql:replication://[master host][:port],[slave host 1][:port][,[slave host 2][:port]]...[/[database]][?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

    ReplicationDriver默认将第一个数据库服务器作为Master库,后续其他数据库服务器作为从数据库。

  2 判断原理

     Mysql驱动使用究竟使用 master还是 slave数据库,取决于 Connection.getReadOnly()的值。

         1  如果值为false,则将命令发送到master数据库

         2 如果值为true,则将命令发送到slave数据库。

         3 当有多台slave数据库时,使用轮询调度(round-robin)算法选择某一台slave数据库。

扫描二维码关注公众号,回复: 7223546 查看本文章

  3 根据原理程序设置

         写  conn.setReadOnly(false);

           读  conn.setReadOnly(true);

           jdbc串  设置master为VIP 

  4 相关思考

        1 当集群出现2个read_only=NO时,会发生什么情况 

        2 当一个从库下架时,程序是否会出现轮询错误

       3 当从库出现复制错误是,是否还会调用

  4 本文仅作记录 博文来源 https://www.iteye.com/blog/leitelyaya-2335195 后续会进行调研测试  补充一下 mongo就是有类型的驱动实现了读写分离

       

猜你喜欢

转载自www.cnblogs.com/danhuangpai/p/11482408.html