CN117119209A - 直播回源数据的缓存方法、装置、存储介质及电子设备 - Google Patents
直播回源数据的缓存方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117119209A CN117119209A CN202310848036.4A CN202310848036A CN117119209A CN 117119209 A CN117119209 A CN 117119209A CN 202310848036 A CN202310848036 A CN 202310848036A CN 117119209 A CN117119209 A CN 117119209A
- Authority
- CN
- China
- Prior art keywords
- target
- media data
- source
- local cache
- user request
- 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 90
- 238000012545 processing Methods 0.000 claims abstract description 59
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 230000008030 elimination Effects 0.000 claims description 5
- 238000003379 elimination reaction Methods 0.000 claims description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/437—Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种直播回源数据的缓存方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备。该方法包括:接收至少两个用户请求,至少两个用户请求均用于请求获取目标媒体数据;在本地缓存中不存在目标媒体数据的情况下,从至少两个用户请求中选出目标用户请求进行回源处理,以获取目标媒体数据,对于目标用户请求以外的其他用户请求,不进行回源处理并等待目标媒体数据写入本地缓存;根据获取的目标媒体数据对目标用户请求进行响应,并将获取的目标媒体数据写入本地缓存,以供在处理其他用户请求时读取。本公开的实施例有利于降低CDN网络中各层级节点的回源压力,以及提高直播回源的稳定性和实时性。
Description
技术领域
本公开总体上涉及计算机技术领域,更具体地涉及一种直播回源数据的缓存方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备。
背景技术
本部分旨在介绍本领域的一些方面,其可以与下面描述的和/或要求保护的本公开的各个方面相关。相信本部分有助于提供背景信息以便于更好地理解本公开的各个方面。因此,应该理解的是这些陈述应该从这个角度来理解,而不是作为对现有技术的承认。
CDN的全称是内容分发网络。在直播CDN中可以使用不同的实时传输协议,比如基于长连接的RTMP(Real Time Messaging Protocol,实时消息传输协议),FLV(FlashVideo,流媒体),或基于短连接的HLS(HTTP Live Streaming,自适应码率流媒体)。
一般的直播流在推流后都可以进行录制。用户可以选择观看实时的直播流或过去的时移流。现有的CDN回源策略为了保证实时性,选择所有数据透传回源生产节点的策略,CDN的树状回源结构会导致越靠近上层的汇聚节点的越重要,但压力也越大,也容易造成重复回源,回源带宽的浪费也会导致成本的上升。
因此,有必要提出一种新的技术方案,以减轻或者解决上述至少一个技术问题。
发明内容
本公开的目的在于提供一种直播回源数据的缓存方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备,以降低CDN中上层汇聚节点的回源压力,提升直播回源的稳定性。
根据本公开的第一方面,提供了一种直播回源数据的缓存方法,包括:接收至少两个用户请求,所述至少两个用户请求均用于请求获取目标媒体数据;在本地缓存中不存在所述目标媒体数据的情况下,从所述至少两个用户请求中选出目标用户请求进行回源处理,以获取所述目标媒体数据,对于所述目标用户请求以外的其他用户请求,不进行回源处理并等待所述目标媒体数据写入本地缓存;根据获取的所述目标媒体数据对所述目标用户请求进行响应,并将获取的所述目标媒体数据写入本地缓存,以供在处理所述其他用户请求时读取。
根据本公开的第二方面,提供了一种直播回源数据的缓存装置,包括:接收模块,用于接收至少两个用户请求,所述至少两个用户请求均用于请求获取目标媒体数据;回源模块,用于在本地缓存中不存在所述目标媒体数据的情况下,从所述至少两个用户请求中选出目标用户请求进行回源处理,以获取所述目标媒体数据,对于所述目标用户请求以外的其他用户请求,不进行回源处理并等待所述目标媒体数据写入本地缓存;响应模块,用于根据获取的所述目标媒体数据对所述目标用户请求进行响应,并将获取的所述目标媒体数据写入本地缓存,以供在处理所述其他用户请求时读取。
根据本公开的第三方面,提供了一种计算机程序产品,包括程序代码指令,当所述程序产品由计算机执行时,所述程序代码指令使所述计算机执行根据本公开的第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非暂时性计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开的第一方面所述的方法。
根据本公开的第五方面,提供了一种电子设备,包括:处理器,与所述处理器进行电子通信的存储器;以及指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述电子设备执行根据本公开的第一方面所述的方法。
在本公开的实施例中,从至少两个用户请求中选出一个用户请求进行回源处理并进行缓存媒体数据,其他用户请求可以读取缓存中的媒体数据,有利于降低CDN网络中各层级节点尤其是上层汇聚节点的回源压力,以及提高直播回源的稳定性和实时性。
应当理解,本部分所描述的内容并不旨在标识所要求保护的发明内容的关键或必要特征,也不旨在单独地用于确定所要求保护的发明内容的范围。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的直播回源数据的缓存方法的一个实施例的系统架构图;
图2示出了根据本公开的直播回源数据的缓存方法的一个实施例的流程图;
图3A示出了根据本公开实施例的媒体数据的缓存过程的示意图;
图3B示出了根据本公开实施例的回源地址的缓存过程的示意图;
图4示出了根据本公开的直播回源数据的缓存装置的一个实施例的示例性框图;
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意图。
具体实现方式
下文将参考附图更全面地描述本公开。然而,本公开可以以多种替代形式来体现,并且不应被解释为限于本文描述的实施例。因此,尽管本公开易于进行各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出,并将在本文详细描述。然而,应当理解,这种方式并不旨在将本公开限制于所公开的特定形式,相反,本公开覆盖了落入由权利要求所限定的本公开的精神和范围内的所有修改方案、等同方案和替代方案。
应当理解,尽管本文可以用术语第一、第二等描述各种元素,但是这些元素不应该被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。例如,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素,而不脱离本公开的教导。
本文结合框图和/或流程图描述了一些示例,其中每个框表示包括用于实现指定逻辑功能的一个或多个可执行指令的电路元件、模分块或代码的部分。还应该注意的是,在其他实现方式中,框中所述的功能可以不按所述的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以实质上同时执行,或者这些框有时可以以相反的顺序执行。
本文提到的“根据……实施例”或“在..实施例中”意味着结合实施例描述的特定特征、结构或特性可以被包括在本公开的至少一个实现方式中。本文中不同地方出现的短语“根据...实施例”或“在...实施例中”不一定都指同一实施例,也不一定是与其他实施例相互排斥的单独或替代实施例。
首先,对本公开中一个或多个实施例涉及的名词术语进行解释。
回源:在用户就近接入骨干网后,如果该节点没有所需的直播流,则需要向上级节点请求拉流,该行为称为回源。本公开实施例中,源站是主播实时上传直播内容的服务器,边缘节点是用户最终观看直播的服务器,源站和边缘节点中间有一层或多层的二级源节点,也称中继服务器。用户访问边缘节点时,边缘节点可能没有所需的直播流,此时边缘节点就需要逐级向上层的二级源节点、直至源站进行请求,来拉取相关的直播流,这一过程即为回源。
本公开中,源站也可以称为生产节点。
本公开中,上层节点用于向下层节点提供直播的媒体数据。这里,上层节点和下层节点是相对而言的。对于回源路径上相邻的两个处理节点,越靠近源站的层级越高(即为“上层”或者“上级”),越靠近用户终端设备的层级越低(即为“下层”或者“下级”)。
图1示出了可以应用本公开的直播回源数据的缓存方法、装置、终端设备和存储介质的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如语音交互类应用、视频会议类应用、短视频社交类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有麦克风和扬声器的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层4)播放器、便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如,服务器105可以是对终端设备101、102、103发送的用户请求进行处理的后台服务器。
在一些情况下,本公开所提供的直播回源数据的缓存方法可以由服务器105执行,相应地,直播回源数据的缓存装置也可以设置于服务器105中,这时,系统架构100可以不包括终端设备101、102、103。
在一些情况下,本公开所提供的直播回源数据的缓存方法可以由终端设备101、102、103和服务器105共同执行。相应地,直播回源数据的缓存装置也可以分别设置于终端设备101、102、103和服务器105中。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示出了根据本公开的直播回源数据的缓存方法的一个实施例的流程图。
本实施例中的直播回源数据,可以包括直播回源中的媒体数据和回源地址。
本实施例中的方法可以基于CDN实现,上述CDN包括多个节点。
本实施例中的方法可以由图1中的服务器实施。进一步地,该服务器可以是CDN中任意一个节点,例如边缘节点或者二级节点。
如图2所示,该方法包括以下步骤:
步骤210,接收至少两个用户请求,至少两个用户请求均用于请求获取目标媒体数据。
本实施例中,用户请求用于请求对目标媒体数据进行回源处理。目标媒体数据例如是流媒体形式。目标媒体数据可以是实时的直播流,也可以是录制的时移流。
本实施例中,用户请求可以携带目标媒体数据的标识。上述目标媒体数据的标识,例如是目标媒体数据的URL(Uniform Resource Locator,统一资源定位符)。
本实施例中,至少两个用户请求的接收时间相差不超过设定的时间阈值。上述设定的时间阈值例如是1秒、3秒或者5秒。
本实施例中,至少两个用户请求指向相同的媒体数据。
步骤220,在本地缓存中不存在目标媒体数据的情况下,从至少两个用户请求中选出目标用户请求进行回源处理,以获取目标媒体数据,对于目标用户请求以外的其他用户请求,不进行回源处理并等待目标媒体数据写入本地缓存。
本实施例中,在接收到至少两个用户请求后,先检测本地缓存中是否存在目标媒体数据。
在本地缓存中存在目标媒体数据的情况下,从本地缓存中读取目标媒体数据并对每个用户请求进行响应。
在本地缓存中不存在目标媒体数据的情况下,从至少两个用户请求中选出目标用户请求进行回源处理。在可选的实施例中,按照接收请求的时间先后顺序,从至少两个用户请求中选出目标用户请求。例如,将第一个接收的用户请求作为目标用户请求。上述方式可以减少用户的等待时间,提升用户的直播观看体验。
本实施例中,对于目标用户请求以外的其他用户请求,不进行回源处理并等待目标媒体数据写入本地缓存。在目标媒体数据写入本地缓存后,通过读取本地缓存中的目标媒体数据对其他用户请求进行响应。
步骤230,根据获取的目标媒体数据对目标用户请求进行响应,并将获取的目标媒体数据写入本地缓存,以供在处理其他用户请求时读取。
本实施例中,在目标用户请求回源处理成功的情况下,将获取的目标媒体数据写入本地缓存。
在可选的实施例中,可以在目标用户请求回源处理失败的情况,选取与目标用户请求相邻的下一用户请求作为新的目标用户请求。上述方式有利于减少回源处理失败对缓存方案的影响。
在可选的实施例中,在超过预设等待时间后目标媒体数据仍未写入本地缓存的情况下,对尚未进行回源处理的各个用户请求分别进行回源处理。上述方式有利于避免未进行回源处理的各个用户请求等待时间过长。
在本实施例中,从至少两个用户请求中选出一个用户请求进行回源处理并进行缓存媒体数据,其他用户请求可以读取缓存中的媒体数据,有利于降低CDN网络中各层级节点尤其是上层汇聚节点的回源压力,以及提高直播回源的稳定性和实时性。
在可选的实施例中,可以对本地缓存中的媒体数据进行生命周期管理。在该实施例中,在达成以下任意一个条件的情况下,将目标媒体数据从本地缓存删除:本地存储空间足够,并且目标媒体数据在本地缓存中的存在时长达到预设淘汰时长(即缓存数据过期);本地存储空间不足,并且目标媒体数据满足最近最少使用(LRU,Least Recently Used)策略的触发条件。通过对本地缓存中的媒体数据进行生命周期管理,有利于保证本地存储空间的可用性。
在可选的实施例中,淘汰时长可以由源站控制,例如通过源站发送的cache-control(缓存控制)确定淘汰时长。若没有读取到源站的cache-control,可以根据节点本地的默认参数确定淘汰时长。
上述实施例描述了对媒体数据的缓存。
在对用户请求进行回源处理时,通常需要向调度服务获取回源地址,并根据回源地址获取媒体数据。若各个节点均向调度服务请求回源地址,会增加调度服务的压力,同时降低回源速度。
针对上述问题,在可选的实施例中,可以对回源地址进行缓存。
在可选的实施例中,上述对目标用户请求进行回源处理的步骤可以进一步包括:从本地缓存中获取目标回源地址;根据目标回源地址,对目标用户请求进行回源处理。通过在各个节点缓存回源地址,无需在每次回源处理中都向调度服务请求回源地址,有利于降低调度服务的压力,以及提升回源速度。
在可选的实施例中,上述从本地缓存中获取目标回源地址的步骤可以进一步包括:从进程独属内存中查找目标回源地址;在进程独属内存中不存在目标回源地址的情况下,从多进程共享内存中查找目标回源地址;在多进程共享内存中不存在目标回源地址的情况下,向调度服务请求目标回源地址,并将获得的目标回源地址写入进程独属内存和多进程共享内存。该实施例按照进程独属内存——多进程共享内存——调度服务的顺序查找目标回源地址,有利于减少进程间的通信,进而提高获取回源地址的速度。
在可选的实施例中,可以对本地缓存中的回源地址进行生命周期管理。在该实施例中,在满足一下至少一项条件的情况下,将本地缓存中的目标回源地址删除:目标回源地址超过预设时间没有被请求;根据目标回源地址进行的回源处理失败;接收到将目标回源地址删除的操作指令。通过对本地缓存中的回源地址进行生命周期管理,有利于保证本地存储空间的可用性。
在可选的实施例中,可以定期批量更新本地缓存中存储的回源地址,以保证回源地址的实时性。
图3A示出了根据本公开实施例的媒体数据的缓存过程的示意图。
如图3A所示,在先后接收到用户请求1、用户请求2和用户请求3后,先检查本地缓存中是否存在可用的缓存数据(即缓存数据存在并且缓存数据未过期)。
若缓存数据不存在或者已过期,则选出用户请求1作为目标用户请求,对其进行回源处理,并将获取的媒体数据写入本地缓存(即缓存落盘),再向用户请求1的终端设备发送响应数据。对于用户请求2和用户请求3,不进行回源处理并且定时检查本地缓存。在发现本地缓存写入了媒体文件后,从缓存中读取媒体文件并分别向用户请求2和用户请求3的终端设备发送响应数据。
若存在可用的缓存数据,则从缓存中读取媒体数据,并分别向用户请求1、用户请求2和用户请求3的终端设备发送响应数据。
图3B示出了根据本公开实施例的回源地址的缓存过程的示意图。
如图3B所示,对于进行回源处理的两个进程worker1和worker2,分别先从进程独属内存中查找回源地址。在进程独属内存中不存在回源地址的情况下,从多进程共享内存查找回源地址。在多进程共享内存不存在回源地址的情况下,向调度服务请求回源地址(即获取动态回源)。
图4示出了根据本公开的实施例的直播回源数据的缓存装置的示例性框图。如图4所示,该直播回源数据的缓存装置400,包括:接收模块410,用于接收至少两个用户请求,上述至少两个用户请求均用于请求获取目标媒体数据;回源模块420,用于在本地缓存中不存在上述目标媒体数据的情况下,从上述至少两个用户请求中选出目标用户请求进行回源处理,以获取上述目标媒体数据,对于上述目标用户请求以外的其他用户请求,不进行回源处理并等待上述目标媒体数据写入本地缓存;响应模块430,用于根据获取的上述目标媒体数据对上述目标用户请求进行响应,并将获取的上述目标媒体数据写入本地缓存,以供在处理上述其他用户请求时读取。
应当理解,图4中所示装置400的各个模块可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置400及其所包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
在可选的实施例中,响应模块430还用于:通过读取本地缓存中的目标媒体数据,对所述其他用户请求进行响应。
在可选的实施例中,回源模块420还用于:按照接收请求的时间先后顺序,从上述至少两个用户请求中选出上述目标用户请求。
在可选的实施例中,回源模块420还用于:在上述目标用户请求回源处理失败的情况,选取与上述目标用户请求相邻的下一用户请求作为新的目标用户请求。
在可选的实施例中,回源模块420还用于:在超过预设等待时间后上述目标媒体数据仍未写入本地缓存的情况下,对尚未进行回源处理的各个用户请求分别进行回源处理。
在可选的实施例中,装置400还包括管理模块(未示出)。管理模块用于:在达成以下任意一个条件的情况下,将上述目标媒体数据从本地缓存删除:本地存储空间足够,并且上述目标媒体数据在上述本地缓存中的存在时长达到预设淘汰时长;本地存储空间不足,并且上述目标媒体数据满足最近最少使用策略的触发条件。
在可选的实施例中,响应模块430还用于:在本地缓存中存在上述目标媒体数据的情况下,从本地缓存中读取上述目标媒体数据并对各个上述用户请求进行响应。
在可选的实施例中,回源模块420还用于:从本地缓存中获取目标回源地址;根据上述目标回源地址,对上述目标用户请求进行回源处理。
在可选的实施例中,回源模块420还用于:从进程独属内存中查找上述目标回源地址;在上述进程独属内存中不存在上述目标回源地址的情况下,从多进程共享内存中查找上述目标回源地址;在上述多进程共享内存中不存在上述目标回源地址的情况下,向调度服务请求上述目标回源地址,并将获得的上述目标回源地址写入上述进程独属内存和上述多进程共享内存。
在可选的实施例中,管理模块还用于:在满足一下至少一项条件的情况下,将上述本地缓存中的上述目标回源地址删除:上述目标回源地址超过预设时间没有被请求;根据上述目标回源地址进行的回源处理失败;接收到将上述目标回源地址删除的操作指令。
在可选的实施例中,管理模块还用于:定期批量更新本地缓存中存储的回源地址。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。参见图5,现将描述可以作为本公开的服务器或客户端的电子设备500的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。如图5所示,电子设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。设备500中的多个部件连接至I/O接口505,包括:输入单元706,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如直播回源数据的缓存方法。例如,在一些实施例中,直播回源数据的缓存方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的直播回源数据的缓存方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行直播回源数据的缓存方法。
结合本文公开的方面所描述的各种说明性逻辑、逻辑块、模块、电路和算法过程可以实现为电子硬件、计算机软件或两者的组合。硬件和软件的可互换性已经在功能方面进行了一般性描述,并且在上述各种说明性组件、块、模块、电路和过程中进行了说明。这种功能是以硬件还是软件实现取决于特定的应用和对整个系统的设计限制。
用于实现结合本文公开的方面所描述的各种说明性逻辑、逻辑块、模块和电路的硬件和数据处理装置可以用通用单芯片或多芯片处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计成执行本文所描述的功能的其任意组合来实现或执行。通用处理器可以是微处理器或任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个与DSP内核结合的微处理器、或者任何其他这样的配置。在一些方面中,特定的过程和方法可以由特定于给定功能的电路来执行。
在一个或多个方面,所描述的功能可以在硬件、数字电子电路、计算机软件、固件(包括本说明书中公开的结构及其等同结构)或其任意组合中实现。本说明书中所描述的主题的方面也可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,该一个或多个计算机程序被编码在计算机存储介质上用于由数据处理装置执行或控制数据处理装置的操作。
如果以软件实现,该功能可以作为一个或多个指令或代码存储或传输到计算机可读介质上。本文公开的方法或算法的过程可以在处理器可执行的软件模块中实现,该软件模块可以驻留在计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括能够将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,此计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备,或者可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都可以被恰当地称为计算机可读介质。本文使用的盘(Disk)和盘(disc)包括高密度光盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中盘(Disk)通常磁性地复制数据,而盘(disc)用激光光学地复制数据。以上的组合也应该包括在计算机可读介质的范围内。附加地,方法或算法的操作可以作为机器可读介质和计算机可读介质上的代码和指令的一个或任意组合或集合,其可以被结合到计算机程序产品中。
本公开中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例、计算机可读存储介质实施例、以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (15)
1.一种直播回源数据的缓存方法,包括:
接收至少两个用户请求,所述至少两个用户请求均用于请求获取目标媒体数据;
在本地缓存中不存在所述目标媒体数据的情况下,从所述至少两个用户请求中选出目标用户请求进行回源处理,以获取所述目标媒体数据,对于所述目标用户请求以外的其他用户请求,不进行回源处理并等待所述目标媒体数据写入本地缓存;
根据获取的所述目标媒体数据对所述目标用户请求进行响应,并将获取的所述目标媒体数据写入本地缓存,以供在处理所述其他用户请求时读取。
2.根据权利要求1所述的方法,其中,在将所述目标媒体数据写入本地缓存后之后,所述方法还包括:
通过读取本地缓存中的目标媒体数据,对所述其他用户请求进行响应。
3.根据权利要求1所述的方法,其中,所述从所述至少两个用户请求中选出目标用户请求进行回源处理,包括:
按照接收请求的时间先后顺序,从所述至少两个用户请求中选出所述目标用户请求。
4.根据权利要求3所述的方法,其中,所述按照接收请求的时间先后顺序,从所述至少两个用户请求中选出所述目标用户请求,包括:
在所述目标用户请求回源处理失败的情况,选取与所述目标用户请求相邻的下一用户请求作为新的目标用户请求。
5.根据权利要求2所述的方法,其中,所述方法还包括:
在超过预设等待时间后所述目标媒体数据仍未写入本地缓存的情况下,对尚未进行回源处理的各个用户请求分别进行回源处理。
6.根据权利要求1所述的方法,其中,在将获取的所述目标媒体数据写入本地缓存之后,所述方法还包括:
在达成以下任意一个条件的情况下,将所述目标媒体数据从本地缓存删除:
本地存储空间足够,并且所述目标媒体数据在所述本地缓存中的存在时长达到预设淘汰时长;
本地存储空间不足,并且所述目标媒体数据满足最近最少使用策略的触发条件。
7.根据权利要求1-6中任一项所述的方法,其中,在接收至少两个用户请求之后,所述方法还包括:
在本地缓存中存在所述目标媒体数据的情况下,从本地缓存中读取所述目标媒体数据并对各个所述用户请求进行响应。
8.根据权利要求1所述的方法,其中,所述从所述至少两个用户请求中选出目标用户请求进行回源处理,包括:
从本地缓存中获取目标回源地址;
根据所述目标回源地址,对所述目标用户请求进行回源处理。
9.根据权利要求8所述的方法,其中,所述从本地缓存中获取目标回源地址,包括:
从进程独属内存中查找所述目标回源地址;
在所述进程独属内存中不存在所述目标回源地址的情况下,从多进程共享内存中查找所述目标回源地址;
在所述多进程共享内存中不存在所述目标回源地址的情况下,向调度服务请求所述目标回源地址,并将获得的所述目标回源地址写入所述进程独属内存和所述多进程共享内存。
10.根据权利要求8所述的方法,其中,在满足一下至少一项条件的情况下,将所述本地缓存中的所述目标回源地址删除:
所述目标回源地址超过预设时间没有被请求;
根据所述目标回源地址进行的回源处理失败;
接收到将所述目标回源地址删除的操作指令。
11.根据权利要求8所述的方法,其中,所述方法还包括:
定期批量更新本地缓存中存储的回源地址。
12.一种直播回源数据的缓存装置,包括:
接收模块,用于接收至少两个用户请求,所述至少两个用户请求均用于请求获取目标媒体数据;
回源模块,用于在本地缓存中不存在所述目标媒体数据的情况下,从所述至少两个用户请求中选出目标用户请求进行回源处理,以获取所述目标媒体数据,对于所述目标用户请求以外的其他用户请求,不进行回源处理并等待所述目标媒体数据写入本地缓存;
响应模块,用于根据获取的所述目标媒体数据对所述目标用户请求进行响应,并将获取的所述目标媒体数据写入本地缓存,以供在处理所述其他用户请求时读取。
13.一种计算机程序产品,包括程序代码指令,当所述程序产品由计算机执行时,所述程序代码指令使所述计算机执行权利要求1-11中的至少一项所述的方法。
14.一种存储有计算机指令的非暂时性计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中的至少一项所述的方法。
15.一种电子设备,包括:
处理器,
与所述处理器进行电子通信的存储器;以及
指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述电子设备执行根据权利要求1-11中的至少一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310848036.4A CN117119209A (zh) | 2023-07-11 | 2023-07-11 | 直播回源数据的缓存方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310848036.4A CN117119209A (zh) | 2023-07-11 | 2023-07-11 | 直播回源数据的缓存方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117119209A true CN117119209A (zh) | 2023-11-24 |
Family
ID=88797319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310848036.4A Pending CN117119209A (zh) | 2023-07-11 | 2023-07-11 | 直播回源数据的缓存方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117119209A (zh) |
-
2023
- 2023-07-11 CN CN202310848036.4A patent/CN117119209A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11329928B2 (en) | Dynamic allocation of network resources using external inputs | |
US9678735B2 (en) | Data caching among interconnected devices | |
RU2632410C2 (ru) | Управляемое приложением предварительное кэширование в cdn | |
CN111277869B (zh) | 视频播放方法、装置、设备和存储介质 | |
WO2017096830A1 (zh) | 用于cdn平台的内容分发方法及调度代理服务器 | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
US10346303B1 (en) | Origin server cache eviction system | |
CN108471385B (zh) | 一种针对分布式系统的流量控制方法及装置 | |
KR100671635B1 (ko) | 스트리밍 미디어 서비스 관리 방법 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
CN115589489A (zh) | 视频转码方法、装置、设备、存储介质及视频点播系统 | |
CN105207993A (zh) | 一种cdn中数据的访问、调度方法和系统 | |
CN116155783A (zh) | 热点数据的检测方法、装置、存储介质及电子设备 | |
CN117119209A (zh) | 直播回源数据的缓存方法、装置、存储介质及电子设备 | |
CN111090818A (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
AU2020226900B2 (en) | Adaptive retrieval of objects from remote storage | |
CN115086610A (zh) | 基于人工智能视频精准治理应用系统的ai流媒体服务器 | |
JP2022549076A (ja) | シングル・ページ・アプリケーションのキャッシャビリティの改善方法、システム、プログラム | |
CN115277653B (zh) | 一种实时视频切片方法及系统 | |
CN105657442A (zh) | 一种视频文件生成方法和系统 | |
CN117714410A (zh) | 截图资源的部署方法、装置、存储介质及电子设备 | |
CN117119208A (zh) | 直播回源的调度方法、装置、存储介质及电子设备 | |
CN118631956A (zh) | 视频抽帧方法、装置、存储介质及电子设备 | |
WO2021082602A1 (zh) | 处理媒体业务的方法与电子设备 | |
CN118018612A (zh) | 调度方法、调度设备以及计算机可读介质 |
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 |