1、基于程序代码内部实现。根据select和insert对代码中的路由进行分类,这也是目前生产环境中应用最广泛的方法。
优点是性能好,因为在程序代码中实现,不需要增加额外的设备作为硬件支出;
缺点是需要开发人员来实现。
并非所有的应用都适合在程序代码中实现读写分离,想要一些大型复杂的Java应用,如果在程序代码中实现读写分离,代码就会发生很大的变化。
2、基于中间代理实现。代理一般位于客户端和服务器之间。
代理服务器收到客户端请求后,通过判断转发到后端数据库。
代表程序:
(1)MySQL-Proxy:MySQL开源项目,SQL由自己的lua脚本判断。
(2)Atlas:是基于MySQL协议的数据中间层项目,由奇虎360Web平台部基础设施团队开发维护;
它是在mysql-proxy0.8.2版本的基础上优化的,增加了一些新的功能特性。
mysql业务在360内部使用Atlas,每天承载数十亿条读写请求,支持事务和存储过程。
(3)Amoeba:由陈思儒开发,该程序由Java语言开发,阿里巴巴产环境,但不支持事务和存储过程。
Amoeba是一款非常容易使用和移植的软件,因此在生产环境中广泛应用于数据库代理。
以上就是mysql读写分离的两种实现,希望对大家有所帮助。更多mysql学习指路:
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑