您好,
应用程序根据业务逻辑来判断,增删改等写操作命令发给主库,查询命令发给备库。
利用中间件来做代理,负责对数据库的请求识别出读还是写,并分发到不同的数据库中。(如:amoeba,mysql-proxy)
方案1:应用程序根据业务逻辑来判断,增删改等写操作命令发给主库,查询命令发给备库。 特点:<1>数据库和应用程序强耦合,数据库如果有变化还好影响主库。<2>应用程序复杂化。
方案2:利用中间件来做代理,负责对数据库的请求识别出读还是写,并分发到不同的数据库中。 特点:<1> 数据库和应用程序弱耦合。<2> 代理存在性能瓶颈和可靠性风险增加,相对可控。 常见的中间件:<1> MySQL-Proxy <2> Amoeba for MySQL(原文推荐这个,没机会对比过) <3> mycat <4> DBProxy <5> 公有云的RDS数据库+数据库中间件,如华为云的RDS(关系型数据库)+DDM(分布式数据库中间件)
方案3:mysql集群模式,罕见,复杂度高,稳定性差。 ———————————————— 原文链接:https://blog.csdn.net/qq_39295735/article/details/88359268
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。