一、VKOS简介

1、主要功能

VOS主要用于帮助客户端上传对象到云存储(阿里的OSS及腾讯的云存储COS,阿里作为主,腾讯作为backup)。

2、产品优势

相比于用户自己直接上传到OSS或腾讯COS,VOS不仅提供了上传所需的SDK,还支持双机房双活,即在单机房故障时,支持自动域名切换来做双机房双活。

3、双机房架构图

在这里插入图片描述
在上传前,客户端APP调用其业务自己的后端服务,后端服务经由VKOS提供的SDK去调用VKOS服务,获取阿里、腾讯的上传域名,每类资源其对应的域名都不同。

客户端APP在获取到上传域名时,进行上传,上传资源时不经由VKOS,直接对接阿里或腾讯的对象存储云服务。

若调用阿里的OSS上传失败,客户端SDK会自动调用腾讯的COS域名来进行上传,以此来实现双机房双活自动切换。

客户端上传成功后,会把上传成功回调结果(上传成功的文件地址)传给VKOS服务端,VKOS服务端将从该地址下载资源,并上传到另一个云如腾讯COS。

问题:VOS是双机房部署的吗?

4、资源类型

在这里插入图片描述

5、整体流程

1、用户端调用自己业务服务端来请求AccessToken;

2、业务服务端收到用户端请求后,通过服务端SDK从VOS服务端获取访问令牌(AccessToken)后返回给用户端;

3、用户端使用客户端SDK和AccessToken,将文件上传至原生的云存储;

4、用户端上传完成后,携带AccessToken参数请求至业务服务端接口,确认上传成功;

5、业务服务端通过SDK和AccessToken,从VOS服务端换取对象URL;

6、业务服务端执行后续处理,完成上传流程;

二、VKOS容灾方案

1、读高可用:双机房互备,自动切换来容灾

VKOS对每一类资源(如图片、音视频、文本)等都有自己的两个域名,每次上传完资源,都会返回一个与域名对应的资源地址,如(*.vipkidstatic.com/key或者*.vipkidresource.com/key),然后另一个域名作为备用域名,业务方在请求一个一个资源如出现4xx或5xx的时候,客户端SDK会自动切换到另一域名,以确保读请求高可用。

在这里插入图片描述
问题:这里还是七牛和阿里吗?是不是阿里和腾讯了?

2、写高可用

VKOS在上传文件时,会自动选择可用的云厂商(阿里OSS或腾讯COS):
例如,当上传资源到OSS,发现阿里的OSS的bucket不可用,这时会使用腾讯的access token (默认用户端会缓存阿里和腾讯的access token, 5分钟过期,过期后会重新经由VKOS获取可用的access token) 去访问腾讯。

3、VKOS双机房双活

VKOS目前部署了阿里和腾讯双机房:
当阿里机房故障时,可手动切换到腾讯机房。
JavaSDK 1.6支持自动切换域名,支持在客户端通过和服务端的心跳自动切换可用节点。(问题:这是说啥?)

三、当前主要问题

iPad端目前由于iOS权限等原因,尚未找到有效的自动切换双机房域名的方案。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐