读写分离和分库分表-初识

读写分离分类:

分为客户端中间件

 

客户端(proxy)应用层(去中心化)

开源代表:TDDL(淘宝) sharding-jdbc(当当)

优点:

1.不需要中间件(不需要运维,高可用)

2.支持任何数据库

3.数据源切换方便

缺点:

1.增加额外的开发工作

2.程序侵入性

3.不能动态增加数据源


proxy(代理)中间件(中心化)

开源代表:mycat atlas mysqlProxy

优点:

1.动态增加数据源,对程序没影响,也不需要重启

2.不需要应用层开发读写分离的代码

3.应用层不需要关注数据库方面的事情(不关心master/slave

缺点:

1.依赖中间件

2.proxy中转的,性能会下降

3.维护成本高

 读写分离和分库分表-初识_第1张图片

 

 

读写分离和主从复制的关系:读写分析是建立在主从复制的基础上的

 

AOP区分数据源读写问题:  注意读写分离和区分数据源不是一回事

如果使用AOP实现读写分离则会出现问题。

例如:

Insert(select) orders

在下单时,需要查询库存

AOP service 上的方法时,没法区分 其中包含了select,这时就没法区分读写分离了

你可能感兴趣的:(java)