6.1云数据库概述
- 云计算是云数据库兴起的基础
- 云数据库的概念,云数据库是部署和虚拟化在云计算环境中的数据库。对于云数据库而言最重要的是,他允许用户以服务的方式通过网络获得云端的数据库功能。
- 数据库特性:
- 动态扩展
- 高可用性
- 较低的使用代价
- 易用性
- 高性能
- 免维护
- 安全
- 云数据库是个性化数据存储需求的理想选择
6.2云数据库产品
- Amazon的云数据库产品,SimpleDB是一个可供查询的分布式数据存储系统,AWS(Amazon Web Service)上第一个NoSQL数据库服务,集合了Amazon大量的AWS基础设施。
- SimpleDB采用键值存储,存在明显缺陷,存在单表限制,性能不稳定、只能支持最终一致性等
- Dynamo是一个改进后的,只能根据Key去访问,不支持查询。
- Amazon RDS是Amazon开发的一种Web服务,用来让用户在云环境中建立、操控关系型数据库。
- Google Cloud SQL是谷歌推出基于MySQL的云数据库。
6.3云数据库系统架构
- UMP系统是低成本和高性能的MySQL云数据库方案,关键模块采用Erlang语言实现。开发者通过网络从平台上申请MySQL实例资源,由平台提供的单一入口来访问数据。
- UMP系统架构设计遵循了一下原则:
- 保持单一的系统对外入口,并且为系统内部维护单一的资源池。
- 消除单点故障,保证服务的高可用性。
- 保证系统具有良好的可伸缩性,能够动态增加、删除计算和存储节点。
- 保证分配给用户的资源也是弹性可伸缩的,资源之间相互隔离,确保应用和数据的安全。
UMP系统架构
前四个是开源组件
- Mnesia是一个分布式数据库管理系统,是开放式电信平台的一部分。
- RabbitMQ是一个用Erlang开发的工业级消息队列,可以实现可靠的消息传送。
- Zookeeper是高效和可靠的协同工作系统,提供分布式锁之类的基本服务。UMP中主要提供一下三个功能:
- 作为全局配置服务器
- 提供分布式锁
- 监控所有MySQL实例
- LVS即Linux虚拟机,是一个虚拟的服务器集群系统,采用IP负载均衡技术和基于内容请求分发技术。
- Controller服务器,向UMP集群提供各种管理服务,实现集群成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等功能。
- Web控制台,提供界面
- Proxy服务器,向用户提供访问MySQL数据库服务。
- Agent服务器,部署在运行MySQL进程的服务器上,用来管理每台物理机上的MySQL实例。
- 日志分析服务器
- 信息统计服务器
- 愚公系统,可以实现不停机的情况下动态扩容、缩容和迁移。