数据库集群方案简单分析

2018-02-08 10:23:02来源:oschina作者:學無止境人点击

分享

方案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提供的主从库访问驱动,直接与数据库连接驱动耦合,扩展性弱,目前还未做原型尝试。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台