码迷,mamicode.com
首页 > 数据库 > 详细

mysql 官方读写分离方案

时间:2019-02-15 15:53:16      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:data   outer   lan   http   host   请求   replica   组复制   ado   

 

mysql 8.0 集群模式下的自动读写分离方案

问题

  1. 多主模式下的组复制,看起来挺好,起始问题和限制很多。而且中断一个复制就无法配置了
  2. 多主模式下,innodbcluster 等于是无用的,不需要自动切换,
  3. 多主模式,不应该作为高可用方案,太多风险
  4. 单主模式下,innodbcluster 自动切换,前端挂mysql router进行自动读负载和写转发。
  5. 但是程序 往往没有做读写分离的方案,无法写的时候找写节点,读的时候找读节点

解决方案:

              Oracle官方想到了这个问题,让JDBC驱动来解决

 

              JDBC 驱动有一种 replication 模式,可以看如下链接

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-master-slave-replication-connection.html

 

http://shift-alt-ctrl.iteye.com/blog/2399464

 

URL 范例

  1. jdbc:mysql:replication://address=(type=master)(host=mr1)(port=mp1),address=(type=master)(host=mr2)(port=mp2),address=(type=slave)(host=sr1)(port=sp1)../database  

 根据上文约定,良好架构下,针对WRITE操作的Router集群应该有3个节点,那么我们需要在URL中指定三个“type=master”的Router地址;此外“type=slave”的地址为接收READ操作的Router节点地址,需要多个。

 

    根据replication协议的设计原理,对于WRITE、READ操作将会在相应的Router节点之间“负载均衡”,默认策略为“轮询”;当其中某个Router失效,replication协议提供了Failover机制,将会把请求路由到同一type的其他Router节点。

 

此外有几个可以参考的参数,我们配合replication协议:

    1)autoReconnect:设置为false,遵循默认值。

    2)failOverReadOnly:此参数只会在autoReconnect为true时生效,建议保持默认值“true”。

    3)roundRobinLoadBalance:此参数只会在autoReconnect为true、failOverReadOnly为false时生效,建议保持默认值。

    4)readFromMasterWhenNoSlaves:当“type=slave”的所有地址都不可达时,是否可以将read请求转发给master,默认值为“false”,这个值根据实际情况设定,如果你的master可以承载所有的read请求,可以设置为true。

    5)loadBalanceStrategy:可选值为“random”、“bestResponseTime”、“serverAffinity”,默认值为“random”。

    6)loadBalanceAutoCommitStatementThreshold:当请求状态为“autoCommit”时,在一个连接上操作一定次数的请求后,触发“负载均衡”,选在其他Server。(参见源码)。

    7)allowMasterDownConnections:默认值为false,在replication协议中,如果Master无法连接时是否允许Client创建或者获取连接(包括获取Slave的连接)。“false”表示当Master无法连接时,将不能创建任何连接,包括Slave读操作。在基于Router集群时,建议设置为true。

    8)allowSlaveDownConnections:默认为false,同上。

 

mysql 官方读写分离方案

标签:data   outer   lan   http   host   请求   replica   组复制   ado   

原文地址:https://www.cnblogs.com/fangxuanlang/p/10383583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!