数据库读写分离方案,实现高性能数据库集群( 二 )
如何优雅使用读写分离我们现在使用了数据库读写分离的机制,但是我们代码该怎么去友好的去访问数据库呢?以前我们一个数据源配置就可以了,现在有好多个数据源了,代码里既要区分哪个地方使用写数据库的数据源,哪个地方需要使用读数据的数据源 。当然,肯定是有办法的,业界大佬们都早于我们遇到了这些问题,下面我会分享出两种方案:
1,程序代码嵌入
代码嵌入,是指通过在我们的代码中开发出数据库访问中间层,由这个数据库访问中间层去访问不同的数据源,以实现读写分离和数据源的管理 。现在推荐使用淘宝开源的TDDL(Taobao Distributed Data Layer),使用方便,直接集成到我们代码就可以了,它自己管理读写分离和数据库配置 。
文章插图
特点是:
- 实现简单,可以根据自己业务进行定制化开发
- 语言不同,就得开发不同语言版本的数据库访问层
部署代理层是指,在我们的业务服务器和数据库直接引入数据访问代理层,并不用自己写代码 。现在为代表的开源中间件有阿里的MyCat、360的Atlas、美团的DBProxy等 。这些都是使用标准的MySql通信协议 。
文章插图
特点:
- 不用自己编写多余代码,使用方便 。
- 支持对语言
- sql语句会跨两层网络,性能稍微低一点 。
总结,今天讲到了当我们读多写少的场景下,采取数据库读写分离的方式来分摊大流量 。从而引出了主从复制,并且对主从复制的延迟进行了优化方案的讲解和给出来相应的建议,希望对大家有所帮助 。如果大家喜欢就关注我,让我们一起聊公司的各种技术,共同学习共同进步,有什么想说的是想学的评论区里说啊,大家都可以给方案,谢谢
【数据库读写分离方案,实现高性能数据库集群】
推荐阅读
- 数据库架构举例说明
- MySQL与 PostgreSQL 数据库功能对比
- 允许远程连接MySQL数据库教程
- 最好用的 7 款数据库监控工具
- MySql,Mssql,Oracle三种数据库性能优缺点
- 镜像迁移,RDS数据库迁移 阿里云跨区域服务器迁移
- ERD 什么是实体关系图?
- 一文总结MySQL数据库访问控制实现原理
- C/C++连接MySql数据库使用总结
- 前后端分离架构