数据库集群方案简单分析

为什么80%的码农都做不了架构师?>>>   hot3.png

方案1(应用层解决方案):

    通过应用层对数据源做路由来实现读写分离,例如项目是Spring做为基础的,SQL路由交给Spring,通过AOP或者Annotation由代码显示的控制Datasource。
    优点:路由策略的扩展性和可控性较强。
    缺点:耦合到Spring;需要加入控制代码。

方案2(中间件解决方案):

    通过MySQL中间件做主从集群,Mysql Proxy、Amoeba、Atlas等中间件貌似都能符合需求。
    优点:与应用层解耦。
    缺点:增加一个服务维护的风险点,性能及稳定性待测试,需要支持代码强制主从和事务。

方案3(驱动解决方案):

    MySQL自带的ReplicationDriver提供主从库访问的驱动,是通过保持多个数据源的链接并根据ReadOnly True/False来选择数据源。相当于应用层解决方案的一个现有实现,扩展性更弱。

三种实现思路关键技术

    1.在应用层使用Spring对数据源做路由,关键字:Spring AOP;
    2.增加中间代理层,Mycat就属于这种情况,此外还有MySQL官方提供的MySQL Proxy;
    3.在驱动层使用MySQL提供的主从库访问驱动,直接与数据库连接驱动耦合,扩展性弱,目前还未做原型尝试。

转载于:https://my.oschina.net/xwzj/blog/1619676

你可能感兴趣的:(数据库集群方案简单分析)