云数据库定义
1.部署和虚拟化在云计算环境当中的数据库,以网络提供IT资源服务。
2.云数据库没有一种自己的数据模型,只是将已有的数据模型(关系型数据库、nosql)在云端的实现。
特点(分布式+统一管理带来的优势)
按需服务
随时服务
通用性与可用性
高可靠性:冗余备份,失败恢复
廉价性
超大规模
虚拟化:资源在资源池,统一调用,方便扩展
技术安全性
Q:Iaas
Paas
Saas
云数据库满足个性化存储需求
大企业海量数据存储需求
中小企业低成本数据存储需求:0投入,平台已经搭建
企业动态变化的存储需求:企业自己搭建的服务器平台要么在低峰期浪费,要么无法满足高峰期需求
云数据库系统架构
Alibaba UMP(Unified MySQL Platform)系统设计原则
统一资源池
单一对外访问入口
多个管家Controller避免单点故障
动态增加减少计算资源,且有限制要求
资源之间相互隔离
UMP系统架构
1.Mnesia:
a.分布式数据库管理系统
b.支持事务,透明的数据分片,两阶段锁实现分布式事务,线性扩展至少50节点
c.运行时动态变更配置
2.RabbitMQ:
a.工业级消息队列产品
b.各组件异步传递消息,协调满足云平台功能
Q:如何满足异步队列可靠消息传递?相比较面向连接
3.Zookeeper
统一命名;状态同步;集群管理
a.监听满足多个服务器配置统一
b.分布式锁:选出一个管家在当前系统发挥作用
Q:如何实现?
c.监控所有MySQL实例,并通知管家
4.LVS(Linux Virtual Service):
a.集群内部负载均衡框架
b.IP负载均衡技术和基于内容请求分发技术
c.调度器:LVS集群系统唯一入口点,集群结构对客户透明
5.Controller服务器
a.集群成员管理:集群成员、用户配置、状态信息、路由表
b.元数据存储
c.MySQL实例管理
d.备份存储恢复
e.备份迁移扩容
6.Web控制台
7.Proxy服务器
向用户提供MySQL数据库服务,实现MySQL协议
8.Agent服务器
管理每台物理机上MySQL实例
部署在运行MySQL进程机器上,和其他组件通讯
9.日志
慢日志查询限制与优化
10.信息统计服务器
记录各种系统运营数据,可用于负载均衡
11.愚公系统
数据迁移、扩容、缩容不停机
一些功能的实现
1容灾
为用户创建两个MySQL实例,主库故障切换
主从切换流程:
探测到发生故障
Controller服务器修改路由表:主库标记不可用
通过RabbitMQ 告知proxy服务器
主库恢复
对从库复制;暂停从库(不可用);完全一致(不可用);切换到主库
2读写分离
用户读写操作分离,对主库写,对主从随机读
3分库分表
对用户透明
系统处理用户查询过程
Proxy服务器解析用户SQL语句,提取出重写和分发SQL语句所需要的信息
对SQL语句进行重写,得到多个针对相应MySQL实例的子语句,分发到对应的MySQL实例上执行
接受执行结果并合并得到最终结果
4资源管理(资源池机制)
多个资源池,根据具体需求决定实例位置
5资源调度
用户可以共享\独占一个\多个MySQL实例
可以对资源动态配置
6资源隔离
Cgroup
多个MySQL实例共享一台物理机
proxy限制QPS
多用户共享一个MySQL实例
7数据安全
a.SSL数据库连接
b.数据访问IP白名单
c.记录用户操作日志
d.SQL拦截
关于Amazon Web Service
亚马逊在数据库方面:关系型数据库Aurora
架构
1.AWS global Infrastructure:Region-Availability Zone-Edge Locations
2.Networking:提供直连服务,VPN连接,Route 53建立访问地址与底层数据库位置映射
3.Compute: EC2:弹性计算云 ELB:负载均衡器
Storage: S3:简单对象存储服务 EBS:弹性块存储服务针对EC2虚拟机设置 Glacier:便宜
Database: SimpleDB and DynamoDB and 市面数据库
4.App Services:企业级搜索服务,队列服务,工作流服务,内容分发服务
5.Deployment & Administration:部署与认证
产品分类
计算类:
EC2:弹性计算云端虚拟机
弹性MapReduce:执行MapReduce计算任务
存储类:
EBS
SQS
S3
NoSQL
RDS
部署EC2
应用程序和相关配置文件
镜像文件
复制到EC2实例上
EC2存储
本地存储是实例自带磁盘空间,并不持久
EBS通过卷来组织数据,挂载到一个EC2实例
EBS卷跟用户账号绑定
流程
云数据服务
关系数据库服务RDS
3TB数据;3万个DB实例
键值数据库SimpleDB
NoSQL数据库DynamoDB(改进SimpleDB)
提供一致性读的功能
根据主键操作记录不允许批量更新
DynamoDB全部采用固态盘存储
数据仓库Redshift
分布式内存缓存ElastiCache
微软云平台架构
更多推荐
数据库
发布评论