大数据原理笔记——云数据库(一)

云数据库的基础是云计算,这自不必多说。因此云数据库可以满足以下三点个性化需求,都是从云中获取的:

1、海量数据存储;

2、低成本数据存储;

3、根据存储需求动态调整;

云数据库,只是将各类数据库(SQL/NOSQL),以云和服务的形式提供给用户使用,并非一种新的数据库,它并没有自己独立的数据存储模型等。对用户来说,它只是使用方式的变化。

Amazon的云数据库一个优点是数据库各类丰富:RDS关系型、SimpleDB的键值型、DynamoDB的NoSQL型、Redshift数仓、ElasticCache分布式内存缓存;

Google云数据库以Mysql为基础,支持本地数据与云中数据的交换、事务云管理、可与Google App Engine集成;

Microsoft,支持云事务、存储过程,关系型(SQL SERVER);

阿里UMP

基于MySQL;

使用mnesia分布式数据库;

使用LVS进行虚拟集群管理。使用IP负载和基于内容请求分发技术;

controller提供各种管理服务,包括集群成员管理、元数据、mysql实例、故障、备份、迁移和扩容等。同时,controller提供了路由表,映射用户和后台服务器mysql实例地址的关系。多个controller只有一个处于激活状态,由zookeeper确定和管理;

proxy服务器,实现mysql协议,可使用mysql客户端连接proxy服务器进行数据库操作,并且proxy服务器实现屏蔽实例故障、读写分享、分库分表等功能。

agent组件,部署在mysql服务器上,负责与controller等管理节点进行通信,执行数据库操作,还可收集和分析mysql日志等;

日志分析服务器:分析proxy传入的用户日志,并支持慢日志查询;

信息统计服务器:可视化展示用户连接数据、QPS及mysql实例状态等;

愚公系统:全量复制结合bin-log分析增量复制,不停机状态下的数据迁移、扩容和缩容。

原则:单一系统入口;消除单点故障;可伸缩;资源之间相互隔离,确保应用和数据安全。

1、容灾、UMP系统会为一个用户创建两个MYSQL实例,一主一从,zookeeper负责切换,改controller路由表,通过rmq通知所有proxy服务器上的地址映射关系,过程对用户透明;恢复时,主库先把从库数据更新到主库,即将完成全部更新时,controller暂停从库,并完成全部更新,之后controller发起切换操作,并通知proxy服务器,恢复数据库的启动状态;

2、读买分离:主库写、从库读;

3、分库分表:需要定义分库分表规则。proxy解析sql查询语句,提取sql信息并重写以针对分片数据,并分发给各msql实例,查询后反馈结果;

4、资源管理:CPU、内存、磁盘等资源池统一分配、统一管理;

5、资源调度:多个小规模用户共用一个实例、中等规模用户独占一个实例、分库分表用户,占用多个独立实例;

6、资源隔离:1)使用cgroup限制mysql进程资源,控制msql进程的最大占用CPU使用率、内存和IOPS;2)使用proxy服务器限制QPS,适用于多用户共享mqlsql实例,controller监控实例的资源消耗情况,proxy通过增加延迟限制用户QPS;

7、数据安全:SSL、IP白名单、用户日志、sql拦截(proxy负责,对异常或消耗大量资源的SQL如全表扫描进行拦截)

猜你喜欢

转载自blog.csdn.net/junweishiwo/article/details/82746581
今日推荐