CN117880542A - 基于长连接的cdn集群回源方法及基于长连接的cdn集群 - Google Patents
基于长连接的cdn集群回源方法及基于长连接的cdn集群 Download PDFInfo
- Publication number
- CN117880542A CN117880542A CN202311828719.XA CN202311828719A CN117880542A CN 117880542 A CN117880542 A CN 117880542A CN 202311828719 A CN202311828719 A CN 202311828719A CN 117880542 A CN117880542 A CN 117880542A
- Authority
- CN
- China
- Prior art keywords
- layer
- back source
- source layer
- central control
- gateway
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004891 communication Methods 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 5
- 102100032305 Bcl-2 homologous antagonist/killer Human genes 0.000 description 4
- 101000798320 Homo sapiens Bcl-2 homologous antagonist/killer Proteins 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于长连接的CDN集群回源方法及CDN集群,CDN集群包括网关层、回源层和中控,方法包括:接收客户端发送的长连接请求,网关层发送请求给中控,中控判断请求的直播流是否符合预设打散条件;若是,中控返回随机的目标回源层和收敛回源层给网关层;目标回源层为随机确定的任一回源层;收敛回源层根据第一算法确定对应的回源层;网关层访问目标回源层,目标回源层判断是否为收敛回源层;若否,目标回源层访问收敛回源层,由收敛回源层向下一CDN集群发送回源请求,以获取直播流。对于符合预设打散条件的直播流,在CDN集群内部通过返回随机目标回源层,将直播流打散分配给CDN集群中随机的回源层,避免单个CDN终端负载过高。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种基于长连接的CDN集群回源方法及基于长连接的CDN集群。
背景技术
用户观看直播时,客户端向CDN(Content Delivery Network, 内容分发网络)发送请求,进行拉流。CDN从源站回源,再返回给客户端,方便用户观看。
当直播采用长连接时,如主播推流后,CDN进行回源时会根据长连接回源直播流。长连接存在长尾流量,长连接建立后,当客户端一直观看直播时,长连接不会断开,CDN内一直存在回源带宽,直至客户端结束观看直播。对于长连接的直播,若访问用户过多,基于一致性哈希策略,同一直播流在CDN集群内会采用同一终端来回源,导致该终端CPU负载迅速升高,影响服务的稳定性,成为CDN集群服务的瓶颈。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的基于长连接的CDN集群回源方法及装置。
根据本申请实施例的第一方面,提供了一种基于长连接的CDN集群回源方法,CDN集群包括网关层、回源层和中控,方法包括:
接收客户端发送的长连接请求, 网关层发送请求给中控, 中控判断请求的直播流是否符合预设打散条件;
若是, 中控返回随机的目标回源层和收敛回源层给网关层; 目标回源层为随机确定的任一回源层;收敛回源层根据第一算法确定对应的回源层;
网关层访问目标回源层, 目标回源层判断是否为收敛回源层;
若否, 目标回源层访问收敛回源层,由收敛回源层向下一CDN集群发送回源请求,以获取直播流。
可选地,方法还包括:
预先构建CDN集群的中控。
可选地, 中控判断请求的直播流是否符合预设打散条件进一步包括:
中控判断预设流配置信息中是否包含请求的直播流;
若是,判断请求的直播流符合预设打散条件。
可选地, 中控判断请求的直播流是否符合预设打散条件进一步包括:
中控根据存储的流信息确定请求的直播流的回源总带宽信息;流信息由网关层上报中控;
判断回源总带宽信息是否超过预设带宽;
若是,判断请求的直播流符合预设打散条件。
可选地,方法还包括:
网关层根据经由网关层的直播流,按照预设时间间隔确定流信息并上报中控。
可选地,流信息包括流标识、访问人数和/或回源带宽;
网关层根据经由网关层的直播流,按照预设时长预设时间间隔确定流信息并上报中控进一步包括:
网关层统计当前预设时间间隔内经由网关层的直播流的流信息,上报中控;
中控根据存储的流信息确定请求的直播流的回源总带宽信息进一步包括:
中控根据请求的直播流的流标识,确定流标识对应的流信息;
计算得到流信息中的各个访问人数与回源带宽的乘积之和,作为直播流的回源总带宽信息。
可选地,中控返回随机的目标回源层和收敛回源层给网关层进一步包括:
中控根据随机算法确定随机的回源层作为目标回源层,根据第一算法确定收敛回源层,将目标回源层和收敛回源层返给网关层;第一算法包括一致性哈希算法。
可选地,若目标回源层判断为收敛回源层,方法还包括:
由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
可选地, 若中控判断请求的直播流不是否符合预设打散条件,方法还包括:
中控基于第二算法确定待访问的回源层,返给网关层;第二算法包括一致性哈希算法;
网关层访问回源层,由回源层向下一CDN集群发送回源请求,以获取直播流。
可选地,接收客户端发送的长连接请求进一步包括:
接收并解析客户端发送的请求,判断请求是否包含预设协议;预设协议包括流媒体格式协议;
若是,确定请求为长连接请求。
根据本申请实施例的第二方面,提供了一种基于长连接的CDN集群,其包括: 中控、 网关层和回源层;
网关层用于:接收客户端发送的长连接请求,发送请求给中控;
中控用于:判断请求的直播流是否符合预设打散条件;若是,返回随机的目标回源层和收敛回源层给网关层; 目标回源层为随机确定的任一回源层;收敛回源层根据第一算法确定对应的回源层;
网关层还用于:访问目标回源层;
目标回源层用于:判断是否为收敛回源层;若否, 目标回源层访问收敛回源层,由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
根据本申请实施例的第三方面,提供了一种计算设备, 包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于长连接的CDN集群回源方法对应的操作。
根据本申请实施例的第四方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于长连接的CDN集群回源方法对应的操作。
根据本申请的提供的基于长连接的CDN集群回源方法及基于长连接的CDN集群,对于符合预设打散条件的直播流,在CDN集群内部中控通过返回随机目标回源层给网关层,从而将直播流打散分配给CDN集群中随机的回源层,避免单个CDN终端负载过高。进一步,在回源请求时,使用收敛回源层向下一CDN集群请求来获取直播流, 即在请求回源前在CDN集群内进行收敛,使得一条直播流对应一路回源带宽,避免增加回源成本。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂, 以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中, 用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本申请一个实施例的基于长连接的CDN集群回源方法的流程图;
图2示出了根据本申请另一个实施例的基于长连接的CDN集群回源方法的流程图;
图3示出了长连接请求符合预设打散条件时的回源的示意图;
图4示出了长连接请求不符合预设打散条件时的回源的示意图;
图5示出了根据本申请一个实施例的基于长连接的CDN集群的结构示意图;
图6示出了根据本申请一个实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
CDN(Content Delivery Network):CDN的全称是内容分发网络,一种基于IP网络的新型内容服务体系。通过策略的构建和部署广泛分布的边缘服务器,并辅以相关的负载均衡和中心平台调度策略, 能够使访问用户就近访问可用的边缘服务器并获得所需内容,从而提高缓存命中率和响应速度。一般的CDN分发系统都是一种类树状结构,依靠分层和端口复用提高整个系统的负载能力。靠近用户的边缘侧CDN节点根据调度系统的决策,经过层层回源从源站获取实时媒体流或静态文件,从而向用户提供服务。
推流:采集客户端的音视频数据,经过编码和使用传输协议封装后传输给服务器。这里的服务器为CDN架构中的源站。
拉流:客户端通过指定的回源地址拉取直播媒体流到本地的过程。
回源:指客户端从CDN获取到请求的流的音视频信息的过程。
FLV协议:是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能, 它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等问题。
RTMP协议:Real Time Message Protocol,实时信息传输协议的缩写,由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。RTMP 是一种基于 TCP 的协议,可维持持久连接并允许低延迟通信。为了顺利地传递流并传输尽可能多的信息, 它将流分成片段,并且它们的大小在客户端和服务器之间动态协商。
图1示出了根据本申请一实施例的基于长连接的CDN集群回源方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,接收客户端发送的长连接请求, 网关层发送请求给中控, 中控判断请求的直播流是否符合预设打散条件。
本实施例是CDN集群针对直播长连接请求情况下的回源处理,对于长连接请求,在用户进入直播间建立连接后,会持续地回源直播流,直至用户关闭直播间。当请求直播流的用户过多时,一般同一直播流会指定给同一终端进行回源,导致该终端负载过高,影响服务性能。
针对以上问题,本实施例在CDN集群中构建了中控。当客户端发送长连接请求后,网关层向中控发送请求, 由中控来判断请求的直播流是否符合预设打散条件,以便在回源直播流前,先将其在CDN集群内打散,避免集中至某一终端,影响服务性能。
预设打散条件可以根据实施情况设置,如根据直播流的回源带宽确定、预先配置可能为热流的直播流等,当判断请求的直播流符合预设打散条件时,则执行步骤S102。
步骤S102, 中控返回随机的目标回源层和收敛回源层给网关层。
当判断请求的直播流符合预设打散条件时,未避免请求集中至某一终端,中控返回随机的目标回源层。目标回源层可以为中控随机确定的任一回源层,如CDN集群中包含3个CDN终端,每个终端中均设置有1个回源层, 中控随机返回任一回源层,从而实现直播流请求被打散在整个CDN集群中,避免服务集中,避免单个CDN终端的CPU负载过高。
考虑到回源带宽, 中控还根据第一算法计算确定了收敛回源层,收敛回源层用于在请求回源前在CDN集群内收敛,保障一条直播流只有一路回源带宽,避免增加成本。第一算法可以采用如一致性哈希算法,保证当前CDN集群对下一CDN集群请求时,都由同一收敛回源层来请求。
步骤S103,网关层访问目标回源层,目标回源层判断是否为收敛回源层。
网关层根据返回的目标回源层和收敛回源层,可以携带收敛回源层的标识访问目标回源层, 目标回源层先判断自身是否为收敛回源层,若否,则执行步骤S104,在CDN集群内部,访问收敛回源层。若是,则可以直接向下一CDN集群发送回源请求, 以获取直播流。
步骤S104, 目标回源层访问收敛回源层, 由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
在CDN集群内部, 目标回源层还需要访问收敛回源层,由收敛回源层统一向下一CDN集群发送回源请求,保障一条直播流只有一路回源带宽,避免增加带宽成本。
收敛回源层从下一CDN集群获取到直播流回源后,可以再返回给对应的网关层,网关层发送给客户端展示, 用户可以观看直播流。
根据本申请提供的基于长连接的CDN集群回源方法,对于符合预设打散条件的直播流,在CDN集群内部中控通过返回随机目标回源层给网关层,从而将直播流打散分配给CDN集群中随机的回源层,避免单个CDN终端负载过高。进一步,在回源请求时,使用收敛回源层向下一CDN集群请求来获取直播流,即在请求回源前在CDN集群内进行收敛,使得一条直播流对应一路回源带宽,避免增加回源成本。
图2示出了根据本申请一实施例的基于长连接的CDN集群回源方法的流程图,如图2所示,该方法包括以下步骤:
步骤S201,预先构建CDN集群的中控。
直播回源时,客户端从CDN拉流,为解决请求时,同一直播流都被指定至同一终端进行回源的问题,本实施例为各个CDN集群预先构建中控。中控可以根据CDN集群中各个网关层的请求,打散确定对应的回源层,避免单个终端承载过高,影响服务性能的问题。
步骤S202,接收客户端发送的长连接请求, 网关层发送请求给中控, 中控判断请求的直播流是否符合预设打散条件。
当客户端观看直播时,直播流媒体可以使用不同的传输协议,如客户端发起FLV协议(流媒体格式协议), 网关层接收并解析客户端发送的请求,网关层先判断请求是否包含预设协议,预设协议包括如流媒体格式协议,则可以确定网关层接收的请求为长连接请求。网关层可以基于RTMP协议传输请求的直播流, 以便返回FLV格式的流媒体文件给客户端方便其播放。
当确定接收的是客户端发送的长连接请求时, 网关层发送请求给中控,由中控判断请求的直播流是否符合预设打散条件。具体的, 中控可以根据存储的流信息确定请求的直播流的回源总带宽信息, 中控存储了回源的各个直播流的流信息。流信息包括流标识、访问人数、回源带宽等。流标识即经由网关层的各个直播流的流标识,用于标记唯一的直播流,流标识可以为流名,也可以为流ID等,此处不做限定。访问人数根据客户端的请求确定,回源带宽根据经由的直播流确定对应的带宽。中控根据请求的直播流的流标识,确定流标识对应的流信息。确定的流信息可以包括多条,计算得到每个流信息中的各个访问人数与回源带宽的乘积,将乘积累加得到乘积之和,作为直播流的回源总带宽信息。判断回源总带宽信息是否超过预设带宽,如预设带宽k,若是,则判断请求的直播流符合预设打散条件。其中,流信息是由网关层上报给中控,中控将流信息存储。网关层对经由网关层的各个直播流进行统计,确定流信息。由于直播流为长连接情况下回源的直播流, 网关层可以采用如打点上报方式,如网关层统计当前预设时间间隔内经由网关层的直播流的流信息,按照预设时间间隔确定流信息后,上报中控。预设时间间隔可以为如1分钟, 即网关层在直播流回源经过网关层时,在第1分钟、第2分钟、第3分钟…定时上报中控收集的直播流的流信息,方便中控存储流信息后进行判断。预设带宽k可以根据CDN集群进行动态调整。预设带宽可以发布在中控服务的动态配置中, 当需要调整时,只需更新配置, 中控服务可以自动加载更新后的配置,得到更新后的预设带宽。
进一步, 由于长连接存储长尾流量, 即客户端长连接后,在客户端主动断开长连接(如退出直播间等)前,长连接难以被切至其他终端。当一条直播流被较多用户访问后,中控才监测到该直播流符合预设打散条件时,触发打散处理,确定目标回源层。但此时只有新访问的客户端的长连接请求才会被打散,原有已连接的客户端由于长连接的特性,仍然按照先前所选择的回源层进行回源,导致长尾流量难以得到打散。考虑存在以上情况,本实施例还可以采用“主动打散”,如对于一些特定的直播场景,如赛事,时政新闻等,其会在固定时间开播且短时间内就会存在大量的用户访问,长连接的长尾流量会快速增长,通过带宽判断的“被动式打散”无法及时反应。基于上述直播, 中控可以预先进行配置,预设流配置信息中预先标记直播流, 中控通过加载预设流配置信息可以动态确定要主动打散的直播流。中控判断预设流配置信息中是否包含请求的直播流,若是,则判断请求的直播流符合预设打散条件,可以在主播开播后, 大量客户端的长连接请求访问前,就实现直播流的长连接请求在整个CDN集群内部随机打散,避免单个终端CPU负载过高的问题。
当中控判断请求的直播流符合预设打散条件时,则执行步骤S203,否则,执行步骤207。
步骤S203, 中控根据随机算法确定随机的回源层作为目标回源层,根据第一算法确定收敛回源层,将目标回源层和收敛回源层返给网关层。
中控在对直播流请求进行打散时,根据随机算法确定CDN集群中任一回源层作为目标回源层,将直播流请求在CDN集群内部打散,网关层可以访问随机的回源层,避免都集中访问单个终端。
收敛回源层用于向下一个CDN集群进行回源请求,第一算法包括一致性哈希算法。中控实时获取CDN集群中各个回源层实时上报的回源层信息,若存在实时上报的回源层信息,则说明该回源层正常运行,否则为故障的回源层。将正常运行的回源层加入如哈希环中,确定其对应的哈希值,基于一致性哈希算法,如从哈希环中最近选取一个哈希节点,该哈希节点的哈希值对应的回源层为收敛回源层,实现在回源请求前,CDN集群内部收敛,一条直播流对应一路回源带宽,避免增加回源成本。
步骤S204,网关层访问目标回源层,目标回源层判断是否为收敛回源层。
网关层根据中控的返回结果,访问目标回源层,访问时携带收敛回源层的信息,如收敛回源层信息标记为pn,网关层携带pn访问目标回源层,目标回源层判断自身是否为收敛回源层pn,若是,执行步骤S206,若否,则执行步骤S205。
步骤S205, 目标回源层访问收敛回源层, 由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
当目标回源层判断自身不是收敛回源层pn,则目标回源层访问收敛回源层pn,由收敛回源层向下一CDN集群发送回源请求,实现CDN集群内部的收敛。
如图3所示,CDN集群包含CDN1、CDN2、CDN3不同的3个终端,CDN1中包含网关层1、回源层1,CDN2中包含网关层2、回源层2,CDN3中包含网关层3、回源层3。CDN集群中还包括中控。不同的用户可以访问不同的网关层,如不同用户可以根据距离远近访问网关层1、网关层2、网关层3。网关层在接收到长连接请求后, 向中控发送请求, 中控通过随机算法,确定目标回源层,以及根据第一算法确定收敛回源层为回源层1,将目标回源层和收敛回源层1返回给网关层。中控可以通过随机算法返回3个回源层中的任一回源层,如针对不同的直播流,可以随机返回任一回源层,如返回目标回源层为回源层1时, 网关层1、网关层2、网关层3都访问回源层1;返回目标回源层为回源层2时, 网关层1、网关层2、网关层3都访问回源层2,返回目标回源层为回源层3时, 网关层1、网关层2、网关层3都访问回源层3,实现对直播流的打散。网关层访问目标回源层时,还携带了收敛回源层的信息, 当回源层2和回源层3收到请求后,发现收敛回源层不是自己,于是向回源层1发起回源请求, 当回源层1收到请求后(如请求可能来自网关层1、网关层2、网关层3,也可能来自回源层2、回源层3),发现收敛回源层为自己,于是向下个集群发起回源请求。
步骤S206, 由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
若当目标回源层判断自身即收敛回源层pn,可以直接向下一CDN集群发送回源请求,来获取直播流,并返回给请求的网关层,网关层返回给客户端,客户端播放直播流供用户观看。
步骤S207, 中控基于第二算法确定待访问的回源层,返给网关层。网关层访问回源层, 由回源层向下一CDN集群发送回源请求, 以获取直播流。
当中控判断请求的直播流不符合预设打散条件,如访问人数少、回源带宽小,直播流不在预设流配置信息中,此时,无需将请求打散, 中控可以基于第二算法确定待访问的回源层,第二算法包括如一致性哈希算法,具体参照收敛回源层的描述,此处不再赘述。确定的待访问的回源层,其目的在于在CDN集群内部进行收敛,使得一条直播流对应一路回源带宽,避免增加回源成本。
将待访问的回源层返回为网关层, 网关层访问回源层, 由回源层向下一CDN集群发送回源请求,获取直播流,并返回给请求的网关层, 网关层返回给客户端,客户端播放直播流供用户观看。
如图4所示,CDN集群中包含CDN1、CDN2、CDN3不同的3个终端,CDN1中包含网关层1、回源层1,CDN2中包含网关层2、回源层2,CDN3中包含网关层3、回源层3。CDN集群中还包括中控。不同的用户可以访问不同的网关层,如不同用户可以根据距离远近访问网关层1、网关层2、网关层3。网关层在接收到长连接请求后,向中控发送请求, 中控根据判断直播流不符合预设打散条件,基于第二算法确定待访问的回源层,如回源层1,网关层1、网关层2、网关层3都访问回源层1,回源层1向下个集群发起回源请求。
以上为举例说明,具体根据实施情况设置,此处不做限定。
根据本申请提供的基于长连接的CDN集群回源方法,CDN集群中构建中控, 中控通过预设打散条件进行判断,对应符合预设打散条件的直播流,返回随机目标回源层给网关层,实现在CDN集群内部将直播流打散,避免单个CDN终端接收请求的负载过高,导致服务性能较差等问题。在回源请求前,使用一致性哈希算法确定收敛回源层,由收敛回源层向下一CDN集群请求获取直播流,一条直播流对应一路回源带宽,避免增加回源成本。
图5示出了本申请一实施例提供的基于长连接的CDN集群的结构示意图。如图5所示,CDN集群包括: 中控510、 网关层520和回源层530;
网关层520用于:接收客户端发送的长连接请求,发送请求给中控510;
中控510用于:判断请求的直播流是否符合预设打散条件;若是,返回随机的目标回源层和收敛回源层给网关层520;目标回源层为随机确定的任一回源层530;收敛回源层根据第一算法确定对应的回源层;
网关层520还用于:访问目标回源层;
目标回源层用于:判断是否为收敛回源层;若否, 目标回源层访问收敛回源层,由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
可选地,预先构建CDN集群的中控510。
可选地, 中控510还用于:判断预设流配置信息中是否包含请求的直播流;若是,判断请求的直播流符合预设打散条件。
可选地, 中控510还用于:根据存储的流信息确定请求的直播流的回源总带宽信息;流信息由网关层上报中控;判断回源总带宽信息是否超过预设带宽;若是,判断请求的直播流符合预设打散条件。
可选地, 网关层520还用于:根据经由网关层的直播流,按照预设时间间隔确定流信息并上报中控。
可选地,流信息包括流标识、访问人数和/或回源带宽;
网关层520还用于:统计当前预设时间间隔内经由网关层的直播流的流信息,上报中控;
中控510还用于:根据请求的直播流的流标识,确定流标识对应的流信息;计算得到流信息中的各个访问人数与回源带宽的乘积之和,作为直播流的回源总带宽信息。
可选地, 中控510还用于:根据随机算法确定随机的回源层530作为目标回源层,根据第一算法确定收敛回源层,将目标回源层和收敛回源层返给网关层520;第一算法包括一致性哈希算法。
可选地,若目标回源层判断为收敛回源层,由收敛回源层向下一CDN集群发送回源请求, 以获取直播流。
可选地,若中控510判断请求的直播流不是否符合预设打散条件, 中控510还用于:基于第二算法确定待访问的回源层,返给网关层;第二算法包括一致性哈希算法;
网关层520还用于:访问回源层530, 由回源层530向下一CDN集群发送回源请求,以获取直播流。
可选地, 网关层520还用于:接收并解析客户端发送的请求,判断请求是否包含预设协议;预设协议包括流媒体格式协议;若是,确定请求为长连接请求。
以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。
根据本申请提供的基于长连接的CDN集群,对于符合预设打散条件的直播流,在CDN集群内部中控通过返回随机目标回源层给网关层,从而将直播流打散分配给CDN集群中随机的回源层,避免单个CDN终端负载过高。进一步,在回源请求时,使用收敛回源层向下一CDN集群请求来获取直播流,即在请求回源前在CDN集群内进行收敛,使得一条直播流对应一路回源带宽,避免增加回源成本。
本申请还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,可执行指令可执行上述任意方法实施例中的基于长连接的CDN集群回源方法。
图6示出了根据本申请一实施例的一种计算设备的结构示意图,本申请的具体实施例并不对计算设备的具体实现做限定。
如图6所示,该计算设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述基于长连接的CDN集群回源方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU, 或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行上述任意方法实施例中的基于长连接的CDN集群回源方法。程序610中各步骤的具体实现可以参见上述基于长连接的CDN集群回源实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的较佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而, 能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术, 以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件, 以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、 以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤, 除有特殊说明外,不应理解为对执行顺序的限定。
Claims (13)
1.一种基于长连接的CDN集群回源方法,所述CDN集群包括网关层、回源层和中控,所述方法包括:
接收客户端发送的长连接请求,所述网关层发送请求给所述中控,所述中控判断所述请求的直播流是否符合预设打散条件;
若是,中控返回随机的目标回源层和收敛回源层给所述网关层;所述目标回源层为随机确定的任一回源层;所述收敛回源层根据第一算法确定对应的回源层;
所述网关层访问所述目标回源层,所述目标回源层判断是否为所述收敛回源层;
若否,所述目标回源层访问所述收敛回源层,由所述收敛回源层向下一CDN集群发送回源请求,以获取直播流。
2.根据权利要求1所述的方法,其中,所述方法还包括:
预先构建所述CDN集群的中控。
3.根据权利要求1所述的方法,其中,所述中控判断所述请求的直播流是否符合预设打散条件进一步包括:
所述中控判断预设流配置信息中是否包含所述请求的直播流;
若是,判断所述请求的直播流符合预设打散条件。
4.根据权利要求1所述的方法,其中,所述中控判断所述请求的直播流是否符合预设打散条件进一步包括:
所述中控根据存储的流信息确定所述请求的直播流的回源总带宽信息;所述流信息由所述网关层上报所述中控;
判断所述回源总带宽信息是否超过预设带宽;
若是,判断所述请求的直播流符合预设打散条件。
5.根据权利要求4所述的方法,其中,所述方法还包括:
所述网关层根据经由网关层的直播流,按照预设时间间隔确定流信息并上报所述中控。
6.根据权利要求5所述的方法,其中,所述流信息包括流标识、访问人数和/或回源带宽;
所述网关层根据经由网关层的直播流,按照预设时长预设时间间隔确定流信息并上报所述中控进一步包括:
所述网关层统计当前预设时间间隔内经由网关层的直播流的流信息,上报所述中控;
所述中控根据存储的流信息确定所述请求的直播流的回源总带宽信息进一步包括:
所述中控根据所述请求的直播流的流标识,确定所述流标识对应的流信息;
计算得到所述流信息中的各个所述访问人数与所述回源带宽的乘积之和,作为所述直播流的回源总带宽信息。
7.根据权利要求1-6中任一项所述的方法,其中,所述中控返回随机的目标回源层和收敛回源层给所述网关层进一步包括:
所述中控根据随机算法确定随机的回源层作为目标回源层,根据所述第一算法确定收敛回源层,将目标回源层和收敛回源层返给所述网关层;所述第一算法包括一致性哈希算法。
8.根据权利要求1-7中任一项所述的方法,其中,若所述目标回源层判断为所述收敛回源层,所述方法还包括:
由所述收敛回源层向下一CDN集群发送回源请求,以获取直播流。
9.根据权利要求1-8中任一项所述的方法,其中,若所述中控判断所述请求的直播流不是否符合预设打散条件,所述方法还包括:
所述中控基于第二算法确定待访问的回源层,返给所述网关层;所述第二算法包括一致性哈希算法;
所述网关层访问所述回源层,由所述回源层向下一CDN集群发送回源请求,以获取直播流。
10.根据权利要求1-9中任一项所述的方法,其中,所述接收客户端发送的长连接请求进一步包括:
接收并解析客户端发送的请求,判断所述请求是否包含预设协议;所述预设协议包括流媒体格式协议;
若是,确定所述请求为长连接请求。
11.一种基于长连接的CDN集群,其包括:中控、网关层和回源层;
所述网关层用于:接收客户端发送的长连接请求,发送请求给所述中控;
所述中控用于:判断所述请求的直播流是否符合预设打散条件;若是,返回随机的目标回源层和收敛回源层给所述网关层;所述目标回源层为随机确定的任一回源层;所述收敛回源层根据第一算法确定对应的回源层;
所述网关层还用于:访问所述目标回源层;
所述目标回源层用于:判断是否为所述收敛回源层;若否,所述目标回源层访问所述收敛回源层,由所述收敛回源层向下一CDN集群发送回源请求,以获取直播流。
12.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-10中任一项所述的基于长连接的CDN集群回源方法对应的操作。
13.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-10中任一项所述的基于长连接的CDN集群回源方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311828719.XA CN117880542A (zh) | 2023-12-27 | 2023-12-27 | 基于长连接的cdn集群回源方法及基于长连接的cdn集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311828719.XA CN117880542A (zh) | 2023-12-27 | 2023-12-27 | 基于长连接的cdn集群回源方法及基于长连接的cdn集群 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117880542A true CN117880542A (zh) | 2024-04-12 |
Family
ID=90593993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311828719.XA Pending CN117880542A (zh) | 2023-12-27 | 2023-12-27 | 基于长连接的cdn集群回源方法及基于长连接的cdn集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117880542A (zh) |
-
2023
- 2023-12-27 CN CN202311828719.XA patent/CN117880542A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3595268B1 (en) | Streaming media resource distribution method, system, edge node and central dispatching system | |
WO2017088381A1 (zh) | 一种直播视频的播放方法、装置及系统 | |
US9300733B2 (en) | System and/or method for client-driven server load distribution | |
US8812715B2 (en) | Method, system, and proxy node for P2P streaming media data distribution | |
WO2017096830A1 (zh) | 用于cdn平台的内容分发方法及调度代理服务器 | |
WO2017096846A1 (zh) | 一种直播视频的获取方法、装置及系统 | |
KR20150091223A (ko) | 가상 파이프에서 멀티미디어 스트림에 의해 사용되는 망자원들을 관리하기 위한 방법 및 장치 | |
RU2647654C2 (ru) | Система и способ доставки аудиовизуального контента в клиентское устройство | |
US20130219441A1 (en) | Method, server and terminal for audio and video on demand | |
US8812718B2 (en) | System and method of streaming data over a distributed infrastructure | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
US20100174806A1 (en) | Data Processing Method, Apparatus And System | |
CN108924609B (zh) | 流媒体数据传输的方法、电子设备、装置及存储介质 | |
US20110082943A1 (en) | P2p network system and data transmitting and receiving method thereof | |
CN110445723B (zh) | 一种网络数据调度方法及边缘节点 | |
WO2011017976A1 (zh) | 媒体服务方法及系统 | |
CN101146114A (zh) | 一种流媒体服务器负荷分担方法及其系统 | |
EP3902279A1 (en) | Audio and video stream distribution method in audio and video stream distribution system, and dynamic parent node | |
WO2016180284A1 (zh) | 服务节点分配方法、装置、cdn管理服务器及系统 | |
CN114615237A (zh) | 流媒体通信方法、系统、设备及存储介质 | |
CN115297095B (zh) | 回源处理方法、装置、计算设备及存储介质 | |
CN117880542A (zh) | 基于长连接的cdn集群回源方法及基于长连接的cdn集群 | |
CN109040199A (zh) | 一种分发资源数据的方法、系统及存储介质 | |
CN115665262A (zh) | 一种请求处理方法、装置、电子设备及存储介质 | |
CN117793392A (zh) | 短连接直播流回源方法及短连接直播流回源的cdn集群 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |