vlambda博客
学习文章列表

从零开始分布式数据库中间件打造读写分离架构

第一时间获取技术干货和业界资讯!

关于读写分离的项目,我在前面的文章中已经给大家分享过。但是在那个项目中,存在很多可扩展性问题。比如,我以前业务量小,我分了两个表,我现在想分 3 个表,是不是就要改动代码了?再比如,分布式事务是否支持等问题都会随着业务的发展给暴露出来。所以,我们就需要重新迭代出符合业务高速发展的新的读写分离分布式架构。


不管你是否接触过分布式项目,分布式项目都想病毒一样的在传播,甚至一些项目因为“分布式”而分布式!当我们向分布式项目转变的时候,会暴露出各种各样的架构上的问题。但是也不要怕,现在开源大行其道,支撑分布式系统的各种中间件也逐渐多了起来。今天我就给大家分享一下,分布式系统数据中间件 Atlas 的使用。


从零开始分布式数据库中间件打造读写分离架构

分布式数据库中间件有很多,今天我先给大家讲一讲 Atlas。后面有时间了,再给大家讲其他的中间件。Atlas 有很多新特性非常符合分布式的业务和商业架构。比如:读写分离、从库负载均衡、IP过滤、自动分表、自动摘除宕机的 DB、DBA 可平滑上下线 DB 等。


但是 Atlas 也有很多缺点,比如它只能安装在 64 位的系统上等。Atlas 的安装很简单,只需执行下面的一条命令即可安装。


从零开始分布式数据库中间件打造读写分离架构

Atlas 运行需要依赖一个配置文件 test.cnf。在运行 Atlas 之前,需要对该文件进行配置。Atlas 的安装目录是 /usr/local/mysql-proxy,进入安装目录下的 conf 目录,可以看到已经有一个名为 test.cnf 的默认配置文件,使用 Atlas 只需要修改 test.cnf 文件中的配置即可。


从零开始分布式数据库中间件打造读写分离架构


改动配置后,我们直接启动 Atlas。


注意,有了 Atlas 之后,我们就不需要直接去链接 MySQL 数据库了。DB 的集群架构现在已经被 Atlas 中间件接管了。我们的程序只需要链接 Atlas 即可。上面配置的有 Atlas 监听的工作接口 IP 和端口。所以你的项目中 JDBC 直接连接到我们现在配置的 Atlas 上。


同时,你也可以通过 MySQL 客户端链接上 Atlas。Atlas 还有专门的管理界面,对应用程序,屏蔽了 MySQL 的集群。让应用程序更关注于业务逻辑,同时连带把分布式事务一同解决,而且还只读主库还是从库等。



除了数据库有集群外,Atlas 也是支持集群的,可以配合 LVS 使用的架构。Atlas 也支持对配置文件中的密码进行加密。insert、update、delete、select 等都是支持的。但是相对来说,它的名气比 MyCat 还是要小一些,后面我们有机会了个大家讲讲 MyCat。