一、官方介绍
.1)、Brief introduction
Atlas is a MySQL protocol-based database middleware project developed and maintained by infrastructure team of the Web platform Department in QIHU 360 SOFTWARE CO. LIMITED(NYSE:QIHU). It fixed lots of bugs and added lot of new functions on the basis of MySQL-Proxy 0.8.2. Currently the project has been widely applied in QIHU, many MySQL business has connected to the Atlas platform. The number of read and write requests forwarded by Atlas has reached billions.
2)、Major functions
a).Read/Write Splitting.
b).Load balancing and failover handling.
c).IP filtering.
d).Data sharding
e).DBA can online or offline the backend database server smoothly.
f).Remove the failed database server automatically.
g).Config file reload without downtime.
3)、The improvement of Atlas compared with Mysql-proxy
a、Rewrite all lua code with C, Lua is only used for management interface.
b、Rewrite the network model and the threading model.
c、Implement the connection pool.
d、Optimize the locking mechanism, performance improved immensely.
Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。
名字来源:
Atlas,希腊神话中双肩撑天的巨人,普罗米修斯的兄弟,最高大强壮的神之一,因反抗宙斯失败而被罚顶天。我们期望这个系统能够脚踏后端DB,为前端应用撑起一片天。
主要功能:
* 读写分离
* 从库负载均衡
* IP过滤
* SQL语句黑白名单
* 自动分表
Atlas相对于官方MySQL-Proxy的优势
1.将主流程中所有Lua代码用C重写,Lua仅用于管理接口
2.重写网络模型、线程模型
3.实现了真正意义上的连接池
4.优化了锁机制,性能提高数十倍
Atlas配置文件示例
[mysql-proxy]
#带#号的为非必需的配置项目
#管理接口的用户名
admin-username = admin
#管理接口的密码
admin-password = passw0rd
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 192.168.1.66:3306
#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses = 192.168.1.64:3306,192.168.1.244:3306
#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!
#pwds = user1:+jKsgB3YAG8=, user2:GS+tr4TPgqc=
pwds = root:FYCDJMDki+SiquyHfJnWyQ==
#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true
daemon = true
#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true
keepalive = true
#工作线程数,对Atlas的性能有很大影响,可根据情况适当设置
event-threads = 64
#日志级别,分为message、warning、critical、error、debug五个级别
log-level = message
#日志存放的路径
log-path = /usr/local/mysql-proxy/log
#SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,REALTIME代表记录SQL日志且实时写入磁盘,默认为OFF
#sql-log = OFF
#实例名称,用于同一台机器上多个Atlas实例间的区分
#instance = test
#Atlas监听的工作接口IP和端口
proxy-address = 0.0.0.0:1234
#Atlas监听的管理接口IP和端口
admin-address = 0.0.0.0:2345
#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项
#tables = person.mt.id.3
#默认字符集,设置该项后客户端不再需要执行SET NAMES语句
#charset = utf8
#允许连接Atlas的客户端的IP,可以是精确IP,也可以是IP段,以逗号分隔,若不设置该项则允许所有IP连接,否则只允许列表中的IP连接
#client-ips = 127.0.0.1, 192.168.1
#Atlas前面挂接的LVS的物理网卡的IP(注意不是虚IP),若有LVS且设置了client-ips则此项必须设置,否则可以不设置
#lvs-ips = 192.168.1.1
相关推荐
MySQL-Bridge 在 Atlas 中扮演着重要的角色,它是 Atlas 与 MySQL 数据库之间的桥梁,使得 Atlas 能够有效地管理和跟踪 MySQL 数据库中的元数据。 **MySQL-Bridge功能** 1. **元数据同步**:MySQL-Bridge 主要负责...
**Atlas** 是一款由奇虎360开发的MySQL数据库中间层项目,旨在提供一种高效、稳定的数据访问解决方案。其核心设计目标在于优化官方MySQL Proxy的性能与功能性,使之更符合大规模应用的需求。 #### 二、Atlas与MySQL...
Atlas作为一个中间件,能够将应用程序和MySQL数据库之间的细节隐藏起来,让应用开发者无需关心底层数据库的复杂操作,如读写分离、分库分表等。DBA的维护工作对前端应用透明,可以轻松地进行数据库的上下线操作而不...
mysql 中间件研究(Atlas、Cobar、TDDL) mysql 中间件研究是当前数据库系统中一个非常重要的课题,mysql-proxy 是官方提供的 mysql 中间件产品,可以实现负载平衡、读写分离、failover 等,但是它不支持大数据量的...
Atlas是奇虎360公司Web平台部基础架构团队打造的一款强大的MySQL数据中间层解决方案,其主要目标是解决大规模MySQL数据库集群的管理、扩展和优化问题。基于MySQL官方的MySQL-Proxy 0.8.2版本,Atlas进行了深度定制和...
MySQL 中间件研究(Atlas、Cobar、TDDL、Mycat) MySQL 中间件是指位于... Atlas、Cobar、TDDL 和 Mycat 都是 MySQL 中间件产品,具有负载平衡、读写分离、failover 等功能,可以提高 MySQL 数据库的性能和可用性。
该文档详细介绍了高性能MySQL中间件Atlas的设计和实现,主要涵盖了 Atlas 的架构设计、性能优化策略和实现细节。 知识点一:Atlas 的架构设计 Atlas 的架构设计主要包括三个部分:客户端、 Atlas Server 和数据库 ...
本文将详细介绍四款知名的MySQL中间件:Atlas、cobar、TDDL以及Mycat。 首先,Atlas是由360公司Web平台部基础架构团队开发的,基于MySQL协议的数据中间层。它在mysql-proxy 0.8.2的基础上进行了优化,提升了性能,...
本篇文章将深入探讨如何通过“atlas代理”实现读写分离,以及如何利用“MySQL的MHA(Master High Availability)”构建高可用性架构,同时也会提及“keepalived”这一网络服务来增强系统的稳定性。 首先,让我们...
MySQL数据库在IT行业中是广泛应用的关系型数据库管理系统,尤其在互联网领域,它的面试题常常成为求职者需要准备的重要内容。以下是一些关于MySQL面试的关键知识点: 1. **索引的使用注意事项**: - 索引在某些...
MySQL数据库在面试中是常被问及的主题,涵盖了各种技术和概念。以下是对100道经典面试题的部分解析,主要关注索引、死锁处理、SQL优化、分库分表等核心知识点。 首先,让我们来看看关于MySQL索引的注意事项。索引在...
6. 除了这些基础服务,还需要安装MySQL,因为Atlas的配置信息通常存储在MySQL数据库中。 安装完成后,配置Atlas以连接到预先安装的HBase、Solr、Zookeeper等服务。这通常涉及修改配置文件,如`atlas-application....
MySQL数据库在IT行业中是广泛应用的关系型数据库管理系统,其性能优化和面试知识点对于后端开发者至关重要。以下是关于MySQL数据库的一些核心知识点: 1. **索引使用注意事项**: - **索引失效情况**:查询条件...
第七课MySQL数据库设计.pdf 第三十一课percona-toolkits 的实战及自动化.pdf 第三课MySQL授权认证.pdf 第九课MySQL字符集.pdf 第二十一课MySQL常见错误-converted.pdf 第二十课MySQL索引和调优.pdf 第二课...
│ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL常见错误-converted.pdf │ 第二十课MySQL索引和调优....
MySQL数据库操作 MySQL数据类型 MySQL存储引擎 MySQL表操作 MySQL2 MySQL数据操作 MySQL单表查询 MySQL多表查询 MySQL索引 MySQL视图 MySQL触发器 MySQL存储过程与函数 MySQL3 MySQL安全机制 MySQL...
此外,还需要一个配置了MySQL数据库的服务,因为Atlas会使用它来存储服务元数据。 3. **下载与解压**:首先,你需要从官方仓库或者GitHub等源下载最新的Atlas发行版。下载完成后,解压到你的服务器或者本地机器上。...