Mysql读写分离,有时会写到从库里

SSH框架下mysql读写分离,使用了C3P0缓冲池,
为什么有时候我的写操作直接操作到了从库里,主库没有变?
控制台显示执行写操作前确实是转成master了的。。。。
跪求大神解答。。。

DynamicDataSource 这个工具应该是第一次访问从数据源列表里面拿数据源,之后都从ThreadLocal缓存里面取得吧。要是这样的话,在同一个线程里面,第一次如果走从库的话,之后的写请求都会走从库的。

https://zhidao.baidu.com/question/496951983424907564.html

是不是数据库主从发生了变化。看看数据库的日志和你的读写分离的相关日志。

mysql主从复制是怎么配置的? 配置完之后必须要保证主节点和从节点的数据一致 并且把插入的数据配置到主节点

这是我数据源配置:

<!-- 配置数据源这里使用了c3p0数据池,需导入c3p0的jar包以及其依赖包
下面分别是主master数据源配置以及从slave数据源配置(这里的属性名与spring的不一样) -->
<bean id="parentDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="initialPoolSize"><value>30</value></property>
    <property name="minPoolSize"><value>10</value></property>
    <property name="maxPoolSize"><value>50</value></property>
</bean>
<bean id="masterDataSource" parent="parentDataSource">
    <property name="driverClass" value="${master.jdbc.driverClassName}" />
    <property name="jdbcUrl" value="${master.jdbc.url}" />
    <property name="user" value="${master.jdbc.username}" />
    <property name="password" value="${master.jdbc.password}" />
</bean>
 <bean id="slaveDataSource" parent="parentDataSource">
     <property name="driverClass" value="${slave.jdbc.driverClassName}" />
    <property name="jdbcUrl" value="${slave.jdbc.url}" />
    <property name="user" value="${slave.jdbc.username}" />
    <property name="password" value="${slave.jdbc.password}" />

</bean>
<bean id="dataSource" class="com.util.DynamicDataSource">  
    <property name="targetDataSources">  
        <map key-type="java.lang.String">  
            <entry key="slave" value-ref="slaveDataSource" />
            <entry key="master" value-ref="masterDataSource" />
        </map>  
    </property>  
    <property name="defaultTargetDataSource" ref="masterDataSource" /> 
</bean>  
**  然后我在切面中根据操作的类型来分别调用DynamicDataSource工具类的方法切换数据源,在执行过程中我把数据源的名称打印,明显是切换到了master,但是主库中没有数据,从库中才有,直接插入到从库了。。。。**

需要修改mysql的配置文件 linux: /etc/mysql/my.cnf, windows: c:/program files/mysql/mysql 5.0/my.ini 主节点开启bin-log 从节点进行监听

已经排除了C3P0的问题了,用不用都这样。。。。

一般的主从数据源都是这么实现的