MySQL中间件产品研究:Atlas、Cobar、TDDL详解
需积分: 50 49 浏览量
更新于2024-09-10
收藏 909KB DOC 举报
Mysql 中间件研究(Atlas、Cobar、TDDL)
MySQL 中间件是指位于应用程序与 MySQL 之间的软件层,负责管理和优化 MySQL 数据库的访问。常见的 MySQL 中间件有 Atlas、Cobar、TDDL 等。本文将对这些中间件进行研究和比较。
**Atlas**
Atlas 是由 Qihoo360 Web 平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目。它是在 MySQL-proxy 0.8.2 版本的基础上,对其进行了优化,增加了一些新的功能特性。Atlas 的架构如下:
Atlas 位于应用程序与 MySQL 之间,实现了 MySQL 的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与 MySQL 通讯。它对应用程序屏蔽了 DB 的细节,同时为了降低 MySQL 负担,它还维护了连接池。
Atlas 的一些新特性包括:
1. 主库宕机不影响读:主库宕机,Atlas 自动将宕机的主库摘除,写操作会失败,读操作不受影响。
2. 通过管理接口,简化管理工作,DB 的上下线对应用完全透明,同时可以手动上下线。
3. 自己实现读写分离: Atlas 中可以在 SQL 语句前增加/*master*/就可以将读请求强制发往主库。
4. 自己实现分表: Atlas支持 SELECT、INSERT、UPDATE、DELETE、REPLACE 语句,支持多个子表查询结果的合并和排序。
然而, Atlas 的分表功能存在一些限制,不能实现分布式分表,所有的子表必须在同一台 DB 的同一个数据库里且所有的子表必须事先建好, Atlas 没有自动建表。
**Cobar**
Cobar 是一个开源的 MySQL 中间件产品,提供了负载均衡、读写分离、failover 等功能。Cobar 的架构如下:
Cobar 位于应用程序与 MySQL 之间,实现了 MySQL 的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与 MySQL 通讯。Cobar 的一些新特性包括:
1. 负载均衡:Cobar 可以将读写请求分配到多个 MySQL 服务器上,从而实现负载均衡。
2. 读写分离:Cobar 可以将读写请求分离到不同的 MySQL 服务器上,提高数据库的性能。
3. failover:Cobar 可以自动检测 MySQL 服务器的故障,并将请求重定向到其他可用的 MySQL 服务器上。
**TDDL**
TDDL 是一个开源的 MySQL 中间件产品,提供了读写分离、负载均衡、failover 等功能。TDDL 的架构如下:
TDDL 位于应用程序与 MySQL 之间,实现了 MySQL 的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与 MySQL 通讯。TDDL 的一些新特性包括:
1. 读写分离:TDDL 可以将读写请求分离到不同的 MySQL 服务器上,提高数据库的性能。
2. 负载均衡:TDDL 可以将读写请求分配到多个 MySQL 服务器上,从而实现负载均衡。
3. failover:TDDL 可以自动检测 MySQL 服务器的故障,并将请求重定向到其他可用的 MySQL 服务器上。
Atlas、Cobar、TDDL 等 MySQL 中间件产品都提供了读写分离、负载均衡、failover 等功能,能够提高 MySQL 数据库的性能和可用性。但是,每个中间件产品都有其特点和缺陷,需要根据具体情况选择合适的中间件产品。
2022-01-08 上传
2021-11-10 上传
点击了解资源详情
2021-08-18 上传
2017-05-11 上传
2023-04-04 上传
2023-01-08 上传
2023-07-30 上传
点击了解资源详情
r201092136
- 粉丝: 0
- 资源: 1
最新资源
- warrants_dashboard:实时仪表板,用于自定义变量和本地股票代码
- Gxss:用于检查一堆包含反射参数的URL的工具
- json_song_list:COMP 20作业9
- 文件系统中的React-Native图像缓存以及针对iOS和Android的渐进式加载-JavaScript开发
- QCefView:封装了名为QCefView的CEF的QWidget
- IDL.zip_图形图像处理_IDL_
- Api_read_joke
- gophercises:来自courses.calhoun.io的golang练习集
- nubers-eats-frontend
- symphytum:Symphytum个人数据库软件
- event-emitter:发出和监听任何类,对象或函数中的事件,而不会弄乱它们扩展类。 您可以使用Fluent接口或可摇树的函数进行声明
- Win32API.zip_Windows编程_Visual_C++_
- LLE手写体matlab代码.zip
- lazyfoo-sdl2
- Tab Shifter (and Window Mover)-crx插件
- hw0-paxaplenty:GitHub课堂创建的hw0-paxaplenty