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

总体思路如下:

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

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容