《极简读写分离配置》

2017-11-23  本文已影响0人  白马王朗

为了解决数据库主库的读压力,我们通常会第一时间采用读写分离方式,成本低,效果好。在配置读写分离的方法上有很多被大家所采纳的方式,今天学习一种极简的读写分离配置,Lets go ~

下面是使用mysql-connector-java来实现读写分离的配置:

POM:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.4</version>
</dependency>            

DataSource:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  init-method="init" destroy-method="close">
       <property name="driverClassName" value="com.mysql.jdbc.ReplicationDriver"/>
       <property name="url" value="jdbc:mysql:replication://192.168.157.61:3306,192.168.157.62:3306/DatabaseName?..."/>
       <property name="username" value="root"/>
       <property name="password" value="root"/>

注意:url这里改写成以“jdbc:mysql:replication://”开头,第一个为master,后面可以跟多个slave,用逗号分隔。

如何生效?这里配合Spring框架,使用Transactional注解的形式来路由,readOnly 默认为:false,设置为true,就可以路由到slave:

@Override
    @Transactional(readOnly = true)
    public Boolean isOver(){

看到这里,配置及使用统统Over。很多企业在做读写分离采用了方法名拦截的方式来路由,相比而言,更加省事,也不需要注意命名规范。

关于遇到的坑,下一篇文章会写。

上一篇 下一篇

猜你喜欢

热点阅读