- 应用层解决:
-
分别定义读写数据源,一个是MasterDataSource,另一个是SlaveDataSource。通过写死的方法,更新数据时读取MasterDataSource,查询数据时读取SlaveDataSource。
-
第二种方式动态数据源切换,就是在程序运行时,把数据源动态织入到程序中,从而根据方法名选择访问主库还是从库。主要使用的技术是:Spring AOP .
- 中间件(Atlas)解决:
- 应用程序访问数据库时通过中间件进行中转,由中间件分配目标数据库(中间件做了中转代理,性能有所下降).
todo:路由数据源 spring热部署