使用Spring配置动态数据源实现读写分离

总体思路如下:

  1. 使用AOP
    使用AOP代理对service方法拦截。可以定义一个切面(aspect),包含切点(pointcut)和增强(advice)。
  2. 数据源信息值为多少?放在那里?
    数据源的信息根据访问的service的名字得出,仅有查询使用slave数据源,否则使用master数据源。数据源的信息设置在ThreadLocal变量中。
  3. 数据源如何路由
    实现AbstractRoutingDataSourcedetermineCurrentLookupKey进行数据源选择。

具体细节这篇文章写得很清楚了,就不再赘述了。


当然还需要对数据库进行MySQL主从复制(BinaryLog)

你可能感兴趣的:(使用Spring配置动态数据源实现读写分离)