MySQL数据库读写分离的简单方法

MySQL数据库读写分离主要利用了MySQL提供的Java客户端的ReplicationDriver的特性。


简单的读写分离改造方案:

1、使用DBCP的数据库连接池(DBCP2暂时不支持)

2、数据源配置成:

jdbc:mysql:replication://localhost:3306,localhost:3307/test?autoReconnect=true&characterEncoding=utf-8&useUnicode=true&zeroDateTimeBehavior=convertToNull

第一个地址为主库,后面的为从库,从库可以配置多个

3、通过Spring的事务配置,所有readOnly = true的都会通过从库查询,如果从库有多个,会在多个从库中选一个进行查询。


数据源配置:

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.ReplicationDriver" />
		<property name="url" value="jdbc:mysql:replication://localhost:3306,localhost:3307/test?autoReconnect=true&amp;characterEncoding=utf-8&amp;useUnicode=true&amp;zeroDateTimeBehavior=convertToNull" />
		<property name="username" value="root" />
		<property name="password" value="test" />
	</bean>


备注:

hibernate.connection.release_mode不能设置为after_transaction

hibernate.transaction.auto_close_session不能设置为true

你可能感兴趣的:(mysql,读写分离)