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的都会通过从库查询,如果从库有多个,会在多个从库中选一个进行查询。


数据源配置:

	
		
		
		
		
	


备注:

hibernate.connection.release_mode不能设置为after_transaction

hibernate.transaction.auto_close_session不能设置为true