一般数量量很大的情况下可以考虑数据库读写分离,使用淘宝tddl框架就可以实现。
使用步骤:
1.引入maven项目
<dependency>
<groupId>com.taobao.diamond</groupId>
<artifactId>diamond-utils</artifactId>
<version>2.0.5.4.taocode-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.taobao.diamond</groupId>
<artifactId>diamond-client</artifactId>
<version>2.0.5.4.taocode-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.taobao.tbdatasource</groupId>
<artifactId>tbdatasource</artifactId>
<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.taobao.tddl</groupId>
<artifactId>tddl-atom-datasource</artifactId>
<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.taobao.tddl</groupId>
<artifactId>tddl-common</artifactId>
<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.taobao.tddl</groupId>
<artifactId>tddl-interact</artifactId>
<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.taobao.tddl</groupId>
<artifactId>tddl-group-datasource</artifactId>
<version>3.0.1.5.taobaocode-SNAPSHOT</version>
</dependency>
2.和spring结合(替换datasource即可)
<beans:bean id="db1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<beans:property name="driverClassName">
<beans:value>com.mysql.jdbc.Driver</beans:value>
</beans:property>
<beans:property name="url">
<beans:value>jdbc:mysql://10.10.10.214:3306/promtion</beans:value>
</beans:property>
<beans:property name="username">
<beans:value>root</beans:value>
</beans:property>
<beans:property name="password">
<beans:value>root</beans:value>
</beans:property>
</beans:bean>
<beans:bean id="db2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<beans:property name="driverClassName">
<beans:value>com.mysql.jdbc.Driver</beans:value>
</beans:property>
<beans:property name="url">
<beans:value>jdbc:mysql://10.10.10.217:3306/promtion</beans:value>
</beans:property>
<beans:property name="username">
<beans:value>root</beans:value>
</beans:property>
<beans:property name="password">
<beans:value>root</beans:value>
</beans:property>
</beans:bean>
<!-- 应用使用的SpringTGroupDataSource数据源 -->
<beans:bean id="dataSource" class="com.taobao.tddl.jdbc.group.SpringTGroupDataSource" init-method="init">
<beans:property name="dataSources" value="db1:r10w10,db2:r10w0" />(r10 可读,权值10,w10可写,权值10 w0表示不能写.mysql主从同步需要自己实现)
<beans:property name="type" value="mysql"/>
</beans:bean>