读写分离怎么做,怎么实现

实现方案:

# # 第一种是在应用层做

  方案就是根据我们的不同的sql语句来选择不同的数据源来操作,优点是对性能的损耗比较小,缺点是强依赖程序员。如果是是新开发程序还好。如果是改造原有的系统,就会变的及其糟糕。

  可以选择的技术有:

 

  从上边的四个方案中选,我们要选的是红色的。原因是无侵入,原有代码不需要做任何改变。 

  来看一下工作原理:

  

 在dao层之后,数据库之前,添加了红色框的插件,用来拦截数据库操作的请求,来判断选择数据源。绿色框标出来的是数据源,不同的数据源。拦截层用来根据sql 的类型来选择不同的数据源。这对前边的程序员的操作是无感的。之前不管是业务层还是dao层,就是无感的,因为我不需要关心读写分离。

 

# # 第二种是使用中间件 

  优点是不再强依赖程序员。缺点是既然是中间件,一层过滤,自然消耗了性能。另外强依赖的其他资源。出问题的可能性就会变大。

 

# # 选哪一种解决方案呢?

 从性能的角度出发,不差钱出发,选第一种。因为需要的是稳定性,第二是性能。我大不了多找几个人过来写。不差钱。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值