Mysql master/slave replication

MySQL读写分离配置详解
本文详细介绍了如何通过DBCP创建JDBC连接,并利用Spring框架实现MySQL的读写分离。文章解释了连接池中连接从主库切换到从库的过程,包括设置连接为只读模式以确保查询被路由到从库的具体步骤。
  • First, DBCP is creating a single JDBC connection through the MySQL driver. This connection will point to the master until set to read-only at which point it will switch over to the slave.
  • Second, Spring is getting a connection from the pool and writing to the debug log that it has acquired a connection. Because the connection has not yet been set to read-only mode, it will route queries to the master.
  • Third, Spring is changing the connection over to read-only mode at which point queries will be routed to the slave.
  • Next, your application (or iBatis or w/e) is given the connection to perform some work with the database.
  • After you return control to Spring, the transaction on the connection will be committed. Because the connection is in read-only mode, you can see the transaction debug message showing that queries will be routed to the slave server.
  • Finally, the connection is reset before being returned to the pool. The read-only mode is cleared and the last log message once again reflects that the connection will route queries to the master server.

 

 

 

The issue with that is that the MySQL replication driver will attempt to reconnect to the master each time the connection is returned to the pool. This happens when read-only mode is cleared. The simplest workaround I can see for this situation is to use a separate data source (and transaction manager) for the master and the slaves. You can them specify (along with read-only if you desire) the name of the datasource/transactionmanager in the annotation,

转载于:https://my.oschina.net/wanghhao/blog/504468

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值