System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于内容分发,具体涉及一种基于预分发和对象存储的cdn资源源站容灾系统。
技术介绍
1、内容分发网络(content delivery network,cdn),是在现有internet中增加的一层新的网络架构,由遍布各地的高性能加速节点构成。当用户向某一内容发起请求时,由最接近用户的服务节点快速响应。当就近服务节点没有资源时,cdn将回源站拉取资源返回用户并在服务节点缓存下来。
2、源站指客户稳定运行的业务服务器。网站、视频、游戏、直播等客户群体为实现就近访问源站内容,会将企业应用服务接入cdn加速,同时他们对业务的高可用性也有极高要求,而一旦源站崩溃将影响所有cdn服务节点的回源,发生服务异常。
3、现有技术存在的问题:
4、在相关技术中,当主源站出现故障时,cdn会将回源请求自动切换至备源进行访问,保证服务正常运行。但备源需要客户自行建设,搭建、维护备源所需的人力成本、硬件成本较高。甚至对部分客户来说,本身没有备源容灾机制,一旦主源崩溃直接影响所有回源服务。
5、相关技术中,cdn领域目前尚无有效的技术方案实现cdn备源的自动化部署和无感切换。
技术实现思路
1、本专利技术的目的是提供一种基于预分发和对象存储的cdn资源源站容灾系统,能够至少解决上述问题。
2、本专利技术采取的技术方案具体如下:
3、一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于:包括边缘预分发客户端、基于ngin
4、其中,边缘预分发客户端,所述边缘预分发客户端用于以可选方式获取指定类型的统一资源定位符(url),生成待注入的资源列表,并向基于nginx的预分发组件根据资源列表发起注入任务:
5、基于nginx的预分发组件,所述基于nginx的预分发组件接收注入任务即根据任务信息回就近cdn加速节点或主源站拉取资源,并调用对象存储协议提供的接口将资源流式上传至对象存储备源中,用于完成对象存储备源与主源间的定时同步;
6、且当所述主源出现故障时,cdn将回源请求自动切换至对象存储备源进行访问,服务正常运行,用于达到源站容灾保护的效果。
7、在其中一个优选的实施例中,所述边缘预分发客户端包括获取客户url列表,历史url滤重,构造并发起预注入http请求,注入请求重试,注入结果日志落盘的功能。
8、在其中一个优选的实施例中,所述边缘预分发客户端发起注入任务的过程包括:
9、步骤1.以可选方式获取指定类型的统一资源定位符(url);
10、步骤2.对步骤1中获取的url进行过滤处理,得到过滤后的url列表;
11、步骤3.发起预注入请求,遍历url列表,逐个构造预注入任务并向预分发组件发起请求,收到预分发组件成功反馈则认为该url注入成功,若对应url注入失败则进行重试;
12、步骤4.将注入结果记录,以日志文件形式落盘。
13、在其中一个优选的实施例中,所述可选方式包括从客户公网以爬虫方式爬取url、从cdn访问日志抓取url、rss订阅中的任意一种。
14、在其中一个优选的实施例中,所述过滤处理包括以下步骤:
15、判断当前url是否属于强制注入类型;
16、若是则跳过,该url仍然记录在注入列表中;
17、若否则需进入滤重处理:
18、且,同一url历史上有注入记录,若满足则该url从注入列表中过滤,避免重复注入。
19、在其中一个优选的实施例中,所述向预分发组件发起请求是边缘注入客户端与预分发组件之间的交互,所述交互基于http协议;
20、所述边缘注入客户端通过请求报文将文件名、回源信息、操作类型传递给预分发组件,其中文件名以uri形式传递,回源信息、操作类型通过内部粘合请求头形式传递,预分发组件可解析请求报名执行相应的逻辑。
21、在其中一个优选的实施例中,所述收到预分发组件成功反馈为一个预分发请求收到预分发组件响应的200状态码。
22、在其中一个优选的实施例中,所述若对应url注入失败则进行重试的过程包括:
23、请求预分发组件连接失败,请求预分发组件超时,预分发组件响应非200状态码;
24、或,一个文件失败后再次发起该失败文件的预注入请求,其中重试次数可配置,达到最大重试次数后不进行重试,该url对应的文件注入失败。
25、在其中一个优选的实施例中,所述基于nginx的预分发组件,解析注入任务的识别操作包括同步客户源站资源至对象存储、删除对象存储文件、响应对象存储文件中的任意一种,且所述同步客户源站资源至对象存储的步骤为:
26、从边缘预分发客户端请求报文中的请求头中获取回源域名和回源协议信息,请求报文中的uri即回源uri,向就近cdn或主源站发起http请求;
27、根据响应的类型,调用对象存储提供的相应api接口,将文件流式同步至对象存储;
28、同步成功响应客户端200状态码,同步失败响应403状态码。
29、在其中一个优选的实施例中,所述对象存储备源包括天翼云对象存储(ct-oos)、阿里云oss、腾讯云对象存储(cos)、aws s3中的任意一种可提供基于http的restful服务的对象存储系统。
30、本专利技术取得的技术效果为:
31、1、能够实现定时、自动将主源站内容同步到对象存储备源,具体采用边缘预分发客户端、预分发组件、对象存储组成的系统三层架构,以http协议交互,边缘预分发客户端生成注入资源列表并以发起注入请求,预分发组件收到注入请求即根据请求信息回就近cdn加速节点或主源站拉取资源,并调用对象存储协议提供的接口将资源流式上传至对象存储备源中,完成对象存储备源与主源间的定时同步,避免主源出现异常时无备用源而影响正常服务,保证cdn服务的高可用性。
32、2.该系统基于预分发机制和对象存储服务,定时、自动地将主源站内容同步到对象存储备源,避免主源出现异常时无备用源而影响正常服务,保证cdn服务的高可用性;其次,本专利技术相对于客户自行搭建cdn备源的源站容灾方式,客户只需要开通对象存储服务,并创建bucket,用以降低客户搭建备源的硬件成本.
本文档来自技高网...【技术保护点】
1.一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于,包括边缘预分发客户端、基于Nginx的预分发组件以及对象存储备源;
2.根据权利要求1所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述边缘预分发客户端包括获取客户URL列表,历史URL滤重,构造并发起预注入http请求,注入请求重试,注入结果日志落盘的功能。
3.根据权利要求2所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述边缘预分发客户端发起注入任务的过程包括:
4.根据权利要求3所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述可选方式包括从客户公网以爬虫方式爬取URL、从CDN访问日志抓取URL、RSS订阅中的任意一种。
5.根据权利要求3所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述过滤处理包括以下步骤:
6.根据权利要求3所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述向预分发组件发起请求是边缘注入客户端与预分发组件之间的交互,
7.根据权利要求3所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述收到预分发组件成功反馈为一个预分发请求收到预分发组件响应的200状态码。
8.根据权利要求3所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述若对应URL注入失败则进行重试的过程包括:
9.根据权利要求1所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述基于Nginx的预分发组件,解析注入任务的识别操作包括同步客户源站资源至对象存储、删除对象存储文件、响应对象存储文件中的任意一种,且所述同步客户源站资源至对象存储的步骤为:
10.根据权利要求1所述的一种基于预分发和对象存储的CDN资源源站容灾系统,其特征在于:所述对象存储备源包括天翼云对象存储(CT-OOS)、阿里云OSS、腾讯云对象存储(COS)、AWS S3中的任意一种可提供基于HTTP的RESTful服务的对象存储系统。
...【技术特征摘要】
1.一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于,包括边缘预分发客户端、基于nginx的预分发组件以及对象存储备源;
2.根据权利要求1所述的一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于:所述边缘预分发客户端包括获取客户url列表,历史url滤重,构造并发起预注入http请求,注入请求重试,注入结果日志落盘的功能。
3.根据权利要求2所述的一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于:所述边缘预分发客户端发起注入任务的过程包括:
4.根据权利要求3所述的一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于:所述可选方式包括从客户公网以爬虫方式爬取url、从cdn访问日志抓取url、rss订阅中的任意一种。
5.根据权利要求3所述的一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于:所述过滤处理包括以下步骤:
6.根据权利要求3所述的一种基于预分发和对象存储的cdn资源源站容灾系统,其特征在于:所述向预分发组件...
【专利技术属性】
技术研发人员:叶子聪,王柄淋,李海兵,王妍兰,王文娟,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。