云数据库(林子雨慕课课程)
文章目录
- 6.云数据库
- 6.1 云数据库概述
- 6.2 云数据库产品
- 6.3 UMP系统
- 6.3.1 UMP系统概述
- 6.3.2 UMP系统架构
- 6.3.3 UMP系统功能
- 6.4 Amazon云数据库
- 6.4.1 Amazon和云计算的渊源
- 6.4.2 Amazon AWS
- 6.4.3 AWS平台上的云数据库
- 6.5 微软云数据库SQL Azure
6.云数据库
6.1 云数据库概述
-
云计算概念:通过网络以服务的方式为用户提供非常廉价的IT资源
-
云计算的八大优势
-
按需服务
-
随时服务
-
通用性:满足各种不同类型的用户需求
-
高可靠性:集群出现故障,通过备份机迅速提供服务
-
极其廉价:只需要开通云计算服务,按照实际情况付费
-
超大规模:云计算底层聚集大量的基础设施
-
虚拟化技术:将底层资源统一放到资源池中去,进行统一调配和使用
-
可扩展性强
-
-
云数据库继承云计算相关特点
- 非常廉价
- 可扩展性、可靠性
-
云数据库优点:
- 动态可扩展
- 高可用性:可以保证不间断服务
- 较低的使用代价:
- 易用性
- 免维护特性
- 高性能
- 安全:有安全保障团队保障其安全性
-
腾讯云数据库和自建数据库比较
-
个性化存储需求
-
通过云数据库满足大企业海量数据的存储需求
-
通过云数据库的投入成本低,降低中小企业的数据库投入成本
-
满足企业动态的存储需求
-
-
云数据库和其他数据库的关系
-
数据模型角度
-
云数据库产品
-
云数据库一部分采用SQL存储,一部分采用NoSQL存储
-
6.2 云数据库产品
服务:通过网络以服务的方式来获得
-
Amazon:提供了相关的云数据库服务
- 亚马逊RDS:提供云上的关系型数据库
- SimpleDB:在云中提供键值数据库
- DynamoDB:在云中提供NoSQL数据库
- Amazon ElastiCache:分布式内存缓存服务
-
Google:Google Cloud SQL
-
谷歌还提供带JDBC和DB-API支持的传统MYSQL数据库环境
-
谷歌Cloud SQL优势:和Google APP Engine集成的
-
-
微软Microsoft-> Miscrosoft SQL Azure(基于关系型数据库)
6.3 UMP系统
6.3.1 UMP系统概述
-
UMP:Unified MYSQL Platform
-
UMP突出特性:
- 低成本,高性能
- 开源数据库
-
UMP在设计时要实现以下原则
-
整个系统保持单一的对外访问入口
-
消除单点故障,保持服务的高可用性(设置多个Controller)
-
具有良好的可伸缩性,能够动态的增加、减少计算资源
-
可以实现资源之间的相互隔离
-
云数据库是多租户:一个服务部署在云端需要满足多个租户的需求
-
多租户带来问题?
- 可能会出现某个用户消耗的资源过多
- 可能会影响其他用户相关的应用程序执行
-
-
6.3.2 UMP系统架构
-
UMP系统的整体架构
-
UMP系统中的各个角色和组件
-
Mnesia
-
是一个分布式数据库管理系统
-
支持事务,支持透明的数据分片,利用两阶段锁会实现分布式事务,可以线性扩展到至少50个节点
-
Mnesia的数据库模式(schema)可在运行时动态重配置
-
Mnesia系统的特性优良,因此阿里巴巴将其纳入UMP系统的开发框架中
-
-
RabbitMQ:工业级的消息队列产品
-
通过消息队列实现各个组件之间的异步信息传递
-
消息队列传递消息方式
-
-
Zookeeper:提供高效协调服务
- 统一命名服务、状态同步服务、集群管理、分布式锁
- 在UMP系统中Zookeeper主要发挥的三个作用
- 作为全局的配置服务器,很多服务器需要相同的配置文件,一旦一个服务器配置文件修改,会被zookeeper监听到,并通知其他服务器修改
- 提供分布式锁(选出一个集群的“总管”):多个controller服务器中由zookeeper选出主管服务器
- 监控所有MYSQL实例的正常运行:一旦监听到故障,zookeeper能够及时探测到,并启用其他备份
-
LVS Linux Virtual Server:Linux 虚拟服务器集群系统
- UMP系统借助LVS实现集群内部的负载均衡
- LVS集群采用IP负载均衡技术和基于内容的请求分发技术
- 调度器是LVS集群系统的唯一入口点:调度器可以接受用户请求,并均匀分发到集群内部不同的服务器节点上去,实现负载均衡,且集群内部有服务器发生故障,其可以自动将其屏蔽
- 整个服务器集群的结构对客户是透明的
-
Controller服务器:UMP集群的总管
-
集群成员的管理
-
元数据的存储
-
MYSQL实例管理
-
故障恢复
-
备份迁移扩容
-
Controller服务器上运行了一组Mnesia分布式数据库服务
- 集群成员、用户的配置和状态信息、“路由表”
-
为了避免单点故障
-
-
Web控制台:帮助用户提供系统关系界面
-
Proxy服务器:向用户提供访问Mysql数据库的服务
-
使用MySQL数据库时下载客户端,连接MySQL服务器
-
-
Agent服务器:部署运行MySQL进程的机器上,用来管理每台物理机上的MySQL实例
-
日志分析服务器:对整个日志进行分析
-
分析一些较长查询的原因
-
-
信息统计服务器:记录系统运营数据
-
愚公系统:数据迁移
- 系统允许在不停机的情况下,可以实现动态的扩容、缩容、迁移
-
6.3.3 UMP系统功能
-
容灾:是云数据库必须要具备的基础功能
- 主库和从库的状态由Zookeeper负责维护
-
主库发生故障时,如何进行主从切换?
-
如何进行主库的恢复
-
读写分离:充分利用主从库实现用户读写操作的分离,实现负载均衡
-
分库分表:UMP支持对用户透明的分库分表
-
采用分库分表后,一个sql语句的表可能已经被分为多个子表,此时系统处理用户查询的过程如下:
-
-
资源管理:采用资源池机制对所有资源进行管理
-
具体MySQL实例的资源分配过程:
-
-
资源调度:
-
UMP系统中有三种用户:数据量、流量都非常小;中等规模用户、数据量非常大需要进行分库分表
-
-
资源隔离:UMP采用两种资源隔离方式
-
数据安全:UMP系统中提供了非常多数据安全机制
6.4 Amazon云数据库
6.4.1 Amazon和云计算的渊源
-
亚马逊和云计算的关系
- 亚马逊开创了云计算的服务模式–把IT资源作为一种服务出租给美国中小企业
-
亚马逊的云计算发展
6.4.2 Amazon AWS
-
Amazon AWS架构图
-
架构图组成部分详细介绍
-
AES GLobal Insfrastructure(全球基础设施):Amazon在全球构建多个数据中心,构成了云计算服务的基础,云计算所有应用都部署在这些基础设施之上
-
其拓扑结构由大到小分为:Region(地区)、Availability Zone(可用区)、Edge Locations(边缘节点)
-
-
Networking
- 提供直连服务
- VPN方式去跟亚马逊进行连接
- 可以在云平台专门划分一块区域作为私有云,面向某个企业提供服务
- Route 53:提供高可用的云域名解析系统
-
Compute
- EC2,弹性计算云,相当于虚拟机,可以在上面运行、安装应用
- ELB,提供负载均衡器,负责申请的多个EC2服务器的负载均衡
-
Storage
- S3:简单对象存储服务
- EBS:弹性块存储服务,专门针对EC2虚拟机设置
- Glacier:用于较少使用的文档存储和备份,价格便宜
-
Database:
- SimpleDB:基于云的键值存储服务
- DynamoDB:性能高,容错性强,支持分布式
- MySQL,SQL Server和Oracle等数据库
- Amazon ElastiCache:数据库缓存服务
-
App Services:
- 企业搜索级服务
- 队列服务
- 工作流服务
- 内容分发服务
- 弹性MapReduce:将Hadoop平台部署到了亚马逊平台
-
Deloyment& Administration(部署和管理服务)
- 自动化一键部署
- 提供相关的访问和认证服务
-
-
Amazon AWS产品分类
-
计算类服务:
-
存储类
-
其还提供相关的工具支持
-
-
Amazon EC2架构
-
整体架构
-
EC2最大特性:允许用户根据需求动态调整运行的实例类型和数量,实现按需付费
-
EC2平台包含内容:
- EC2实例(AMI)
- 弹性块存储
- 弹性负载均衡
-
如何将平时相关的应用部署到EC2
-
EC2数据存储:
- EC2本地存储是实例自带的磁盘空间,但它并不是持久的
- 若本地磁盘的相关服务已停止使用或本地磁盘的服务发生故障,本地磁盘的数据会被清空掉
- 为了解决本地存储不可靠问题,EC2推出了EBS
- EBS通过卷来组织数据,每个EBS卷只能挂载一个EC2实例
- EBS卷并不与实例绑定,而是与用户帐号绑定
- EC2本地存储是实例自带的磁盘空间,但它并不是持久的
-
Amazon S3和EBS的区别
-
EC2x虚拟机类型
-
Amazon AWS云管理平台运行过程
- 启动服务
- 监控相关需求
- 服务无人用时停止
- 清楚相关资源
-
Hadoop作业AWS操作流程
- 消息平台向Lauch Controller发送命令,将启动信息放在SimpleDB中,分配EC2
- 启动Hadoop操作,EC2中执行大数据分析
- 执行过程中通过Monitor Controller对状态信息进行监控,将监控信息更新到SimpleDB中,监控过程中会动态的增加或减少系统资源
- 所有计算结束后,通过shoutdown Controller关闭EC2虚拟机和hadoop服务
- Billing Controller根据消耗的资源出账单
-
6.4.3 AWS平台上的云数据库
-
AWS平台上提供云数据服务包括
- 关系型数据库RDS
- 键值数据库SimpleDB
- NoSQL数据库SimpleDB
- 数据仓库Redshift
- 分布式内存缓存ElastiCache
-
SimpleDB
-
DynamoDB
-
避免如SimpleDB对多个键的索引
-
-
RDS
-
允许建立3TB数据,带三万个DB实例
6.5 微软云数据库SQL Azure
-
SQL Azure特点:将这个应用锁涉及到的相关数据都放到一个表组里
-
数据模型
- 必须将一个行组里的数组存在一起例如Id=34的两行数据都会被分到一个分区中
- 在实现事务时,针对一个分区的行组实现一个事务
- 可以针对行组实现一个事务,但是它不支持跨分区事务
-
提供数据冗余备份:一般一主二从
-
例如有四台服务器,分别放置了A、B、C、D四个分区,每个分区都有一个主副本和两个从副本
-
-
SQL Azure四个组成部分
-
全局分区管理器:维护分区映射表信息
-
协议网关负责将用户的数据库连接请求转发到相应的主分区上
-
相关文章:

云数据库(林子雨慕课课程)
文章目录 6.云数据库6.1 云数据库概述6.2 云数据库产品6.3 UMP系统6.3.1 UMP系统概述6.3.2 UMP系统架构6.3.3 UMP系统功能 6.4 Amazon云数据库6.4.1 Amazon和云计算的渊源6.4.2 Amazon AWS6.4.3 AWS平台上的云数据库6.5 微软云数据库SQL Azure 6.云数据库 6.1 云数据库概述 云…...

2023-10-10 python-从一组颜色中找到与指定颜色最接近的颜色-{K-D树}-记录
摘要: 2023-10-10 python-从一组颜色中找到与指定颜色最接近的颜色-{K-D树}-记录 相关文档: 如何在颜色表中找到与当前颜色最接近的颜色? - 糯米PHP https://zh.wikipedia.org/wiki/%E6%9C%80%E9%82%BB%E8%BF%91%E6%90%9C%E7%B4%A2 https://zh.wikipedia.org/wiki/…...

使用C++实现DNS欺骗攻击
文章为花钱购买转载,但我测试并未成功!!! 使用C实现DNS欺骗攻击-CSDN博客 使用C实现DNS欺骗攻击 DNS劫持是一种常见的网络攻击方式,通过篡改DNS响应数据,使得用户访问的网站被重定向到攻击者指定的恶意站…...

C#WPF属性元素语法应用实例
本文介绍C#WPF属性元素语法应用实例 一、属性元素语法 对于对象元素的某些属性,无法使用特性语法(比如:Background="Blue"),因为无法在特性语法的引号和字符串限制内充分地表达提供属性值所必需的对象或信息。 对于这些情况,可以使用另一个语法,即属性元素语…...

el-select应用虚拟列表,避免过多数据导致浏览器卡死
el-select: element-ui组件中的select下拉选择组件,支持单选、多选等 虚拟列表: 虚拟列表是一种优化技术,用于处理大型列表。在传统的列表中,当用户滚动到底部时,列表会加载所有的数据,这可能导…...

ES6之函数的扩展
函数的扩展 文章目录 函数的扩展1:与解构赋值默认值结合使用2:参数默认值空对象2.1 案例一2.2 案例二2.3 案例三2.4 案例四 3:undefined null参数默认值的区别4:函数length5:作用域5.1 全局变量5.2:局部变量…...

【PPT制作】基础篇
文章目录 一、PPT制作必要的基础设置1.1 自动保存1.2 字体嵌入1.3 撤销步数1.4 图像大小和质量 二、必备快捷键三、设计四原则四、总结 ヾ(๑╹◡╹)ノ" 没有坚持的努力,本质上并没有多大意义ヾ(๑╹◡╹)ノ" 一、PPT制作必要的基础…...

尚硅谷CSS学习笔记
什么是css css(层叠样式表) 它是一种标记语言,用于给HTML结构设置样式。简单理解css可以美化html,实现结构与样式的分离。 <link rel"shortcut icon" href"favicon.ico" type"image/x-icon"&g…...

MYSQL的日志管理
MySQL中有几种类型的日志记录,分别用于记录不同的操作和事件。以下是MySQL中常见的日志类型 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据…...

微信小程序在TS模板下引入TDesign组件
介绍 TDesign 是腾讯官方出品的一款微信小程序组件库。本文介绍如何在新建ts空白模板下引入TDesign库 步骤 新建一个空白项目,这里可以选择TS-基础模板 新建项目目录结构如图所示: 注意这里其实小程序的文件都存放在miniprogram文件夹下,…...

alsa pcm接口之pcm设备的状态STATE
应用和库之间的协作: ALSA pcm api设计使用状态来确定应用程序和库之间的通信阶段,实际的状态可以被决定通过使用snd_pcm_state调用,下面列举出来状态: SND_PCM_STATE_OPEN: 表示pcm设备被打开的状态,使用了snd_pcm_open()之后进入该状态,并且让snd_pcm_hw_params()调用失败后,…...

【UE】在游戏运行时,通过选择uasset来生成静态网格体
目录 主要流程 步骤 一、创建用于包含静态网格体的Actor蓝图 二、按钮点击事件 效果 主要流程 用户点击按钮后产生一个文件对话框,用户通过文件对话框选择指定的文件夹,我们获取到这个文件夹路径后处理成“按路径获取资产”节点所需的输入&#x…...

vue中PC端使用高德地图 -- 实现搜索定位、地址标记、弹窗显示定位详情
PC端高德地图使用步骤: 1、注册并登录高德开放平台获取 2、安装高德依赖(amap-jsapi-loader) 3、初始化地图 4、首次打开地图获取当前定位并标记 5、根据已有地址自动定位到指定地址并标记 6、新增、清除标记及自定义信息窗体 7、鼠标点击地…...

服务器数据恢复-DS5300存储raid5硬盘出现坏道离线的数据恢复案例
服务器数据恢复环境: 某单位一台DS5300存储,1个主机4个扩展柜,组建了2组RAID5(一组27块硬盘,一组23块盘)。27块盘的那组RAID5阵列存放Oracle数据库文件,存储系统一共分了11个卷。 服务器故障&a…...

K8S存储总结持久化存储解决方案(以NFS为例)
目录 K8S存储 一、emptydir 1. emptydir是什么 2. emptydir例子 二、hostpath hostpath 是什么 hostpath 例子 弊端 三、持久化存储 1.Persistent Volume(PV) 2.Persistent Volume Claim(PVC) 3.PV/PVC结合NFS使用实践(持久存储) 1. NFS服务…...

vue3+ts项目02-安装eslint、prettier和sass
创建项目 项目创建 安装eslint yarn add eslint -D生成配置文件 npx eslint --init安装其他插件 yarn add -D eslint-plugin-import eslint-plugin-vue eslint-plugin-node eslint-plugin-prettier eslint-config-prettier eslint-plugin-node babel/eslint-parser vue-e…...

sface人脸相似度检测
sface人脸相似度检测,基于OPENCV,人脸检测采用yunet,人脸识别采用sface,支持PYTHON/C开发,图片来自网络,侵权请联系本人立即删除 yunet人脸检测sface人脸识别,检测两张图片的人脸相似度...

设计模式 - 行为型模式考点篇:模板方法模式(概念 | 案例实现 | 优缺点 | 使用场景)
目录 一、行为型模式 1.1、模板方法模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 一句话概括行为型模式 行为型模式:类或对象间如何交互、如何划分职责,从而更好的完成任务. 1.1、模板方法模式 1.1.1、概念 …...

因为计算机中找不到mfc140.dll无法启动修复步骤分享
mfc140.dll是Microsoft Foundation Class Library(微软基础类库)的一个组件,它是许多Windows应用程序(尤其是使用MFC编写的程序)所必需的动态链接库。MFC(Microsoft Foundation Classes)是一个用…...

【Python基础-Pandas】解决Pandas会自动把None转成NaN的问题
1. 背景 目前dataframe中的数据如下,power字段表示功率值,第一个值为20.0,第二个值为None。需要计算电量值,电量 功率 * 0.25,并保存到energy字段中,如果功率值为None,则电量值也为None。 pow…...

学习记忆——数学篇——案例——代数——方程——一元二次方程
重点记忆法 a x 2 b x c 0 ax^2bxc0 ax2bxc0 整体可以由: 根(多少,正负,区间) ⟹ \Longrightarrow ⟹ △ △ △ ⟹ \Longrightarrow ⟹ 求根公式 x 1 , 2 x_{1,2} x1,2 − b △ 2 a \frac{-b\sqrt{△}}{2a} 2…...

接口测试及常用接口测试工具
首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你…...

【java学习】数组中涉及的常见算法-含冒泡排序(11)
文章目录 1. 最大值、最小值、总和、平均数2. 数组的复制、反转3. 数组元素的排序3.1. 排序方式3.1.1. 冒泡排序 1. 最大值、最小值、总和、平均数 代码如下: public class Test1 {public static void main (String[] args) {int[] arr new int[] {4,2,7,1,3,5};/…...

useEffect Hook使用纠错
React的useEffect Hook是用于处理副作用操作的重要工具。副作用操作通常包括数据获取、订阅、手动DOM操作等。在使用useEffect时,有一些常见的错误和最佳实践需要注意。 以下是一些常见的useEffect使用错误以及如何解决它们的建议: 未清除订阅或定时器…...

LeetCode【739】每日温度
题目: 思路: https://www.bilibili.com/video/BV1PJ411H7P7/?spm_id_from333.337.search-card.all.click&vd_source2f682a60feabf0f730ad09e0f980ce83 单调栈 思考: 解决栈类问题,思考入栈,出栈条件;…...

核桃派walnutpi添加红外遥控器键盘映射(其他的linux板子同理)ir-keytable
01studio终于又发布新品了,全志h616 linux开发板核桃派,正好我也打算学习linux,做为我的启蒙公司,必须支持果断入了一个。 这个板子自带红外接收头,比较少见,一般都需要自己加,看官网文档&…...

cartographer(2)-launch-lua的配置
1.了解bag 1roscore2rosbag info rslidar-outdoor-gps.bag了解bag中topic的名称与类型duration: 3:33s types: geometry_msgs?QuaternionStamped nav_msgs_Odometry sensor_msgs/Imu sensor_msgs/IaserScan sensor_msgs/NavSatFix sensor_msgs/PointCloud2 tf2 msgs/TFMe…...

【C++设计模式之责任链模式:行为型】分析及示例
简介 责任链模式是一种行为型设计模式,它允许将请求沿着处理链传递,直到有一个处理器能够处理该请求。这种模式将请求的发送者和接收者解耦,同时提供了更高的灵活性和可扩展性。 描述 责任链模式由多个处理器组成一个处理链,每…...

如何选择编程语言Python Go还是Rust?
选择编程语言需要考虑多个方面,包括语言的特性、社区支持、工作机会、学习曲线等。下面是关于Python Go和Rust的一些介绍。 1.基本语法 1. Python: Python 是一种脚本语言,以简洁、易读的语法著称。以下是 Python 的基本语法示例: # Hello…...

CAN和CANFD通信介绍
CAN(Controller Area Network,控制器局域网)是一种串行通信技术,专门用于在汽车电子控制单元(ECU)之间实现可靠的数据交换。 CAN协议介绍 电子化 汽车近年来的发展呈现出以电子化为主的特点。电子化的主…...