Atlas – MySQL 切片器 介绍

本文介绍了MySQL的Atlas系统,它将数据存储单位定义为组,每个组包含一个master和多个slave节点,实现数据独立和水平切片。Atlas通过shard key进行数据分配,实现类似MongoDB的水平扩展,并且支持读写分离,提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



什么是Atlas

(一)Atlas 是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。
(二) 主要功能:1.读写分离、2.从库负载均衡、3.IP过滤、4.自动分表、5.DBA可平滑上下线DB、 6.自动摘除宕机的DB
(三)Atlas架构图

Alt text

在Atlas中, 将一个组看做是数据存储的单位, 一个组由一台master, 零台或者多台slave组成(mysql主从同步需要由用户自己配置, 这是我们讲解过的MHA架构). 每个组之间的数据独立, 没有关系, 表数据的各个部分存储在各个组中,这类似于MongoDB将collection进行水平shard一样,这里的atlas将一张表数据切分为多张表数据,存储在不同的group中,而每一个group都是可以进行MHA的
(四)组内读写分离
组类读写分离指的是:当有请求调度到atlas节点的时候,atlas节点会根据自身metadata,找到对应的group组,如果是写操作会在master节点上执行,如果是读操作,会在slave节点上执行
(五)数据切分策略
每一个shard table都有一个shard key, 其可以是主键, 也可以是非主键, 但是这个列必须是一个整数. Atlas会利用这个shard key来判断应该把这条记录存放到哪一个数据库组中,
详情请参考:http://database.51cto.com/art/201505/476483_all.htm


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值