实现方案:
# # 第一种是在应用层做
方案就是根据我们的不同的sql语句来选择不同的数据源来操作,优点是对性能的损耗比较小,缺点是强依赖程序员。如果是是新开发程序还好。如果是改造原有的系统,就会变的及其糟糕。
可以选择的技术有:
从上边的四个方案中选,我们要选的是红色的。原因是无侵入,原有代码不需要做任何改变。
来看一下工作原理:
在dao层之后,数据库之前,添加了红色框的插件,用来拦截数据库操作的请求,来判断选择数据源。绿色框标出来的是数据源,不同的数据源。拦截层用来根据sql 的类型来选择不同的数据源。这对前边的程序员的操作是无感的。之前不管是业务层还是dao层,就是无感的,因为我不需要关心读写分离。
# # 第二种是使用中间件
优点是不再强依赖程序员。缺点是既然是中间件,一层过滤,自然消耗了性能。另外强依赖的其他资源。出问题的可能性就会变大。
# # 选哪一种解决方案呢?
从性能的角度出发,不差钱出发,选第一种。因为需要的是稳定性,第二是性能。我大不了多找几个人过来写。不差钱。
标签:怎么,dao,中间件,数据源,读写,分离,性能,程序员,无感 From: https://blog.51cto.com/u_15812686/5740250