CN103475679B - 对分片请求进行定长对齐的缓存方法、***及装置 - Google Patents
对分片请求进行定长对齐的缓存方法、***及装置 Download PDFInfo
- Publication number
- CN103475679B CN103475679B CN201210185452.2A CN201210185452A CN103475679B CN 103475679 B CN103475679 B CN 103475679B CN 201210185452 A CN201210185452 A CN 201210185452A CN 103475679 B CN103475679 B CN 103475679B
- Authority
- CN
- China
- Prior art keywords
- request
- user
- scope
- broadcasting
- son
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种对分片请求进行定长对齐的缓存方法、***和装置。其中方法包括以下步骤:接收具有第一播放范围的第一用户请求,并根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐;分别将所述多个第一用户子请求发送至源站进行回源操作,并接收所述源站返回的多个分段;以及将所述多个分段中的每个分段作为单独对象存储至缓存中,每个所述单独对象具有对应的播放范围。本发明将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种对分片请求进行定长对齐的缓存方法、***及装置。
背景技术
对于作为缓存功能的http服务器代理而言(典型应用如CDN),对缓存不命中的对象,需要回源站取。
具体地,现有的http代理对带播放范围的分片请求的处理方式有以下两种:
1、回源时,读取整个对象,并将整个对象存到缓存中,即整存整取。这种方式的问题是,如果每个分片的大小相对于整个对象的比例很小,而且分片较多,那么会造成大量的带宽浪费。而且如果用户请求的播放范围在对象的靠后位置,那么也会影响用户响应时间。针对上述问题,现有的解决方案是在每次源上有新对象时,手动请求代理服务器,把整个对象从源服务器填充到代理服务器中,但是这样会增大人工成本,增加代理服务器的逻辑。
2、回源时,转发用户的具有播放范围的请求,仅请求用户请求的片段,然后在本地对片段进行拼接。这种方式的问题是,要求代理的缓存***支持分片存储的功能,同时要求代理的缓存***对分片进行拼接,复杂度高。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种能够节约带宽同时避免拼接分片的复杂度的对分片请求进行定长对齐的缓存方法。
本发明的另一目的在于提出一种对分片请求进行定长对齐的缓存***。
本发明的再一个目的在于提出一种HTTP服务器。
为了实现上述目的,根据本发明的第一方面实施例的对分片请求进行定长对齐的缓存方法,包括以下步骤:接收具有第一播放范围的第一用户请求,并根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐;分别将所述多个第一用户子请求发送至源站进行回源操作,并接收所述源站返回的多个分段;以及将所述多个分段中的每个分段作为单独对象存储至缓存中,每个所述单独对象具有对应的播放范围。
根据本发明实施例的对分片请求进行定长对齐的缓存方法,将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
为了实现上述目的,根据本发明的第二方面实施例的对分片请求进行定长对齐的缓存***,包括:源站;HTTP服务器,所述HTTP服务器具有缓存功能,用于接收具有第一播放范围的第一用户请求,并根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐,以及分别将所述多个第一用户子请求发送至所述源站进行回源操作,并接收所述源站返回的多个分段,和将所述多个分段中的每个分段作为单独对象存储至所述缓存中,其中,每个所述单独对象具有对应的播放范围。
根据本发明实施例的对分片请求进行定长对齐的缓存***,将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
为了实现上述目的,根据本发明的第三方面实施例的HTTP服务器,包括:接收模块,用于接收具有第一播放范围的第一用户请求;切分模块,用于根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐;回源模块,用于分别将所述多个第一用户子请求发送至源站进行回源操作,并接收所述源站返回的多个分段;以及缓存模块,用于将所述多个分段中的每个分段作为单独对象存储至缓存中,每个所述单独对象具有对应的播放范围。
根据本发明实施例的HTTP服务器,将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的对分片请求进行定长对齐的缓存方法的流程图;
图2是根据本发明一个实施例的对分片请求进行定长对齐的缓存方法的流程图;
图3是根据本发明一个实施例的对分片请求进行定长对齐的缓存方法的流程图;
图4是根据本发明一个实施例的对分片请求进行定长对齐的缓存***的结构示意图;
图5是根据本发明一个实施例的HTTP服务器的结构示意图;
图6是根据本发明一个实施例的HTTP服务器的结构示意图;以及
图7是根据本发明一个实施例的HTTP服务器的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的报文过滤/限速方法。
一种对分片请求进行定长对齐的缓存方法,包括以下步骤:接收具有第一播放范围的第一用户请求,并根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户子请求之间相互对齐;分别将多个第一用户子请求发送至源站进行回源操作,并接收源站返回的多个分段;以及将多个分段中的每个分片作为单独对象存储至缓存中,每个单独对象具有对应的播放范围。
图1是根据本发明一个实施例的对分片请求进行定长对齐的缓存方法的流程图。
如图1所示,根据本发明实施例的对分片请求进行定长对齐的缓存方法包括下述步骤。
步骤S 101,接收具有第一播放范围的第一用户请求,并根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户子请求之间相互对齐。
具体地,多个用户子请求之间相互对齐指的是,每个用户子请求都是从0、100、200等类似固定的点开始。
此外,HTTP协议的播放范围的格式有三种:一种是包括起始字节和结束字节;一种是包括起始字节和播放范围的总长度;另一种是起始字节和结束字节均不知道。
因此,在本发明的一个实施例中,对于包括起始字节和结束字节的播放范围请求,可根据用户子请求中播放范围的长度、起始字节和结束字节对用户请求进行划分。例如,假设定长分段长度(用户子请求中播放范围的长度)为100,用户一次请求的播放范围是50-350,那么此次用户请求会被切分成0-99,100-199,200-299,300-399四个用户子请求。
在本发明的另一个实施例中,对于包括起始字节和播放范围总长度的播放范围请求,可根据播放范围的总长度和起始字节对用户请求进行划分。具体地,首先根据起始字节可以构造出第一个子请求;根据HTTP协议,根据第一子请求返回的响应头中会包含Content-Length头,标明此对象的总长度,据此就可以得到用户请求的结束字节,然后构造后续子请求。
在本发明的又一个实施例中,对于起始字节和结束字节均不知道的情况,由于无法构造出第一个子请求,因此可以首先发出一个头请求,以从源获得对象总长度,然后计算用户请求分片位置。但是,由于部分源服务器不支持头请求,因此在本发明的一个实施例中是发出一个只请求第一字节的播放范围请求,进而获得对象总长度,然后计算用户请求分片位置。由于只请求第一字节,所以浪费的流量可以忽略。
步骤S 102,分别将多个第一用户子请求发送至源站进行回源操作,并接收源站返回的多个分段。
由于将一个用户请求拆分为多个子请求,这些子请求间的时间间隔会增大用户接收响应的延时。因此,在本发明的一个实施例中,可以一次并行发送多个第一用户子请求,实现加速。
步骤S103,将多个分段中的每个分段作为单独对象存储至缓存中,每个单独对象具有对应的播放范围。
根据本发明实施例的对分片请求进行定长对齐的缓存方法,将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
图2是根据本发明一个实施例的对分片请求进行定长对齐的缓存方法的流程图。
如图2所示,根据本发明实施例的对分片请求进行定长对齐的缓存方法包括下述步骤。
步骤S201,接收具有第一播放范围的第一用户请求,并根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户子请求之间相互对齐。
步骤S202,分别将多个第一用户子请求发送至源站进行回源操作,并接收源站返回的多个分段。
步骤S203,将多个分段中的每个分段作为单独对象存储至缓存中,每个单独对象具有对应的播放范围。
步骤S204,接收具有第二播放范围的第二用户请求,并根据第二播放范围将第二用户请求切分为多个第二用户子请求,其中,每个第二用户子请求具有相同长度的播放范围且多个第二用户子请求之间相互对齐。
步骤S204的具体实现过程可与步骤S201相同,此处不再详细描述。
步骤S205,判断多个第二用户子请求中是否有播放范围与缓存中保存的单独对象的播放范围相同的第二用户子请求。
步骤S206,如果有播放范围相同的第二用户子请求,则从缓存中获得与播放范围相同的第二用户子请求所对应的单独对象。
如果没有播放范围相同的第二用户子请求,则执行与步骤S202类似的操作,也就是分别将多个第二用户子请求发送至源站进行回源操作,并接受源站返回的多个分段,然后将多个分段中的每个分段作为单独对象存储至缓存中。
例如,假设配置定长分段长度为100,用户第一次请求的播放范围是50-350,那么此第一用户请求会被切分为0-99、100-199、200-299、300-399四个第一用户子请求,分别回源,并将取回的四个分段作为四个单独对象存储在缓存中。如果再有请求的播放范围是310-410,那么该第二用户请求会被拆分为300-399和400-499两个第二用户子请求。由于第一个第二用户子请求对应的分段已经存储在缓存中,所以缓存命中;第二个第二用户子请求对应的分段则需要回源取回并存到缓存中。
应理解,同样地,多个第二用户子请求也可并行发送,实现加速。
根据本发明实施例的对分片请求进行定长对齐的缓存方法,通过从缓存中直接获取播放范围与第二用户子请求的播放范围相同的单独对象,节省大量的流量。
图3为本发明一个实施例的对分片请求进行定长对齐的缓存方法的流程图。
如图3所示,根据本发明实施例的对分片请求进行定长对齐的缓存方法包括下述步骤。
步骤S301,接收具有第一播放范围的第一用户请求,并根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户子请求之间相互对齐。
步骤S302,分别将多个第一用户子请求发送至源站进行回源操作,并接收源站返回的多个分段。
步骤S303,将多个分段中的每个分段作为单独对象存储至缓存中,每个单独对象具有对应的播放范围。
步骤S304,接收具有第二播放范围的第二用户请求,并根据第二播放范围将第二用户请求切分为多个第二用户子请求,其中,每个第二用户子请求具有相同长度的播放范围且多个第二用户子请求之间相互对齐。
步骤S305,判断多个第二用户子请求中是否有播放范围与缓存中保存的单独对象的播放范围相同的第二用户子请求。
步骤S306,如果有播放范围相同的第二用户子请求,则从缓存中获得与播放范围相同的第二用户子请求所对应的单独对象。
步骤S307,在处理完第一和第二用户请求所属用户的全部用户请求之后,释放多个第一和第二用户子请求所占用的资源。
为了实现简单,在本发明的实施例中,子请求在结束后并不会立即释放资源,而是当全部用户请求之后才一起释放资源。由此,应理解,如果用户请求的播放范围远大于分片长度(每个用户子请求的长度),就会产生大量子请求,进而占用大量内存。因此,为了解决上述问题,在本发明的一个实施例中,通过对子请求各种状态的综合分析,可以对子请求的实际结束时间点进行精确判断,进而可以复用已经确认结束的子请求的内存和缓存等资源,避免生成大量子请求而导致的内存浪费。
根据本发明实施例的对分片请求进行定长对齐的缓存方法,在整个用户请求结束后才一起释放子请求所占用的资源,实现简单。
在本发明的一个实施例中,步骤S304至步骤S307为可选的。
下面结合附图详细描述根据本发明实施例的对分片请求进行定长对齐的缓存***。
一种对分片请求进行定长对齐的缓存***,包括:源站;HTTP服务器,HTTP服务器具有缓存功能,用于接收具有第一播放范围的第一用户请求,并根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户子请求之间相互对齐,以及分别将多个第一用户子请求发送至源站进行回源操作,并接收源站返回的多个分段,和将多个分段中的每个分段作为单独对象存储至缓存中,其中,每个单独对象具有对应的播放范围。
图4是根据本发明一个实施例的对分片请求进行定长对齐的缓存***的结构示意图。如图4所示,该缓存***包括:源站1和HTTP服务器2。
HTTP服务器2具有缓存功能,用于接收具有第一播放范围的第一用户请求,并根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户子请求之间相互对齐,然后分别将多个第一用户子请求发送至源站1进行回源操作,并接收源站1返回的多个分段,之后将多个分段中的每个分段作为单独对象存储至缓存中,其中,每个单独对象具有对应的播放范围。
根据本发明实施例的对分片请求进行定长对齐的缓存***,将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
在本发明的一个实施例中,HTTP服务器为Nginx服务器。Nginx服务器是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,具有稳定性高、功能集丰富、示例配置文件和***资源消耗低的优点,此外Nginx的模块化机制非常强大,通过增加模块而不修改主体代码就能实现期望功能。
在本发明的一个实施例中,HTTP服务器2还用于接收具有第二播放范围的第二用户请求,并根据第二播放范围将第二用户请求切分为多个第二用户子请求,其中,每个第二用户子请求具有相同长度的播放范围且多个第二用户子请求之间相互对齐,然后判断多个第二用户子请求是否有播放范围与缓存中保存的单独对象的播放范围相同的第二用户子请求,并在多个第二用户子请求中有播放范围与缓存中保存的单独对象的播放范围相同的第二用户子请求时,从缓存中获得与播放范围相同的第二用户子请求所对应的单独对象。由此,相对于整存整取的每次回源需要取回整个对象,本发明实施例节省了大量带宽。另外,由于每个分段都作为独立对象单独存放在缓存中,因此避免了拼接的复杂度。
在本发明的一个实施例中,第一或第二播放范围包括起始字节和结束字节。因此,HTTP服务器2根据每个第一或第二用户子请求中播放范围的长度、起始字节和结束字节将第一或第二用户请求切分为多个第一或第二用户子请求。
在本发明的另一个实施例中,第一或第二播放范围包括起始字节、第一或第二播放范围的总长度。因此,HTTP服务器2根据每个第一或第二播放范围的总长度和起始字节将第一或第二用户请求切分为多个第一或第二用户子请求。
在本发明的又一个实施例中,对用户请求的第一或第二播放范围的起始字节和结束字节均不知道,无法构造出第一个有效子请求,对此可以首先发出一个头请求,以从源站获得对象总长度,然后计算用户请求分片的位置。但是,由于部分源服务器不支持头请求,因此在本发明的一个实施例中,HTTP服务器2发出一个只请求第一字节的播放范围请求,进而获得对象总长度,然后计算用户请求分片位置。由于只请求第一字节,因此浪费的流量可以忽略。
应理解,由于本发明将一个用户请求拆分为多个子请求,这些子请求间的间隔时间就增大了用户接收响应的延迟。因此,在本发明的一个实施例中,在确认需要发出的请求个数后,可以一次并行发送多个第一或第二用户子请求,实现加速。应理解,子请求的并发数可以自行配置。
此外,在本发明的一个实施例中,为了实现简单,HTTP服务器2还用于在处理完第一或第二用户请求所属用户的全部用户请求之后,才释放多个第一或第二用户子请求所占用的资源。
下面结合附图详细描述根据本发明实施例的HTTP服务器。
图5是根据本发明一个实施例的HTTP服务器的结构示意图。如图5所示,该HTTP服务器包括:接收模块110、切分模块120、回源模块130和缓存模块140。
接收模块110用于接收具有第一播放范围的第一用户请求。切分模块120用于根据第一播放范围将第一用户请求切分为多个第一用户子请求,其中,每个第一用户子请求具有相同长度的播放范围且多个第一用户请求之间相互对齐。回源模块130用于分别将多个第一用户子请求发送至源站进行回源操作,并接收源站返回的多个分段。缓存模块140用于将多个分段中的每个分段作为单独对象进行存储,其中每个单独对象具有对应的播放范围。
根据本发明实施例的HTTP服务器,将分片的请求转换成为定长对齐的对象片段,然后将每个片段看作一个独立对象再进行回源和缓存的存取,既节约了带宽,又避免了拼接分段的复杂度。
图6是根据本发明一个实施例的HTTP服务器的结构示意图。如图6所示,该HTTP服务器还包括调取模块150。
在本发明的实施例中,接收模块110还用于接收具有第二播放范围的第二用户请求。切分模块120还用于根据第二播放范围将第二用户请求切分为多个第二用户子请求,其中,每个第二用户子请求具有相同长度的播放范围且多个第二用户子请求之间相互对齐。
调取模块150用于在多个第二用户子请求中具有播放范围与缓存模块140中保存的单独对象的播放范围相同的第二用户子请求时,从缓存模块140中获得与播放范围相同的第二用户子请求所对应的单独对象。
根据本发明实施例的HTTP服务器,通过从缓存中直接调取播放范围与第二用户子请求的播放范围相同的单独对象,节省大量的流量。
在本发明的一个实施例中,第一或第二用户子请求并行发送,实现加速,避免因子请求之间的间隔时间而增大用户接收响应的延迟。
图7为根据本发明一个实施例的HTTP服务器的结构示意图。如图所示,该HTTP服务器还包括释放模块160。
释放模块160用于在处理完第一或第二用户请求所属用户的全部用户请求之后,释放多个第一或第二用户子请求所占用的资源。
应理解,如果用户请求的播放范围远大于分片长度(每个用户子请求的长度),就会产生大量子请求,进而占用大量内存。因此,为了解决上述问题,在本发明的一个实施例中,通过对子请求各种状态的综合分析,可以对子请求的实际结束时间点进行精确判断,进而可以复用已经确认结束的子请求的内存和缓存等资源,避免生成大量子请求而导致的内存浪费。
根据本发明实施例的HTTP服务器,在整个用户请求结束后才一起释放子请求所占用的资源,实现简单。
在本发明的一个实施例中,调取模块150为可选的。
应理解,上述各个模块或者装置的具体实现过程可与上述方法实施例的描述相对应,此处不再详细描述。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (22)
1.一种对分片请求进行定长对齐的缓存方法,其特征在于,包括以下步骤:
接收具有第一播放范围的第一用户请求,并根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐;
分别将所述多个第一用户子请求发送至源站进行回源操作,并接收所述源站返回的多个分段;以及
将所述多个分段中的每个分段作为单独对象存储至缓存中,每个所述单独对象具有对应的播放范围;
向所述源站发送播放范围请求,所述播放范围请求只请求第一字节。
2.如权利要求1所述的对分片请求进行定长对齐的缓存方法,其特征在于,还包括:
接收具有第二播放范围的第二用户请求,并根据所述第二播放范围将所述第二用户请求切分为多个第二用户子请求,其中,每个所述第二用户子请求具有相同长度的播放范围且所述多个第二用户子请求之间相互对齐;
判断所述多个第二用户子请求中是否有播放范围与所述缓存中保存的所述单独对象的播放范围相同的第二用户子请求;
如果有播放范围相同的第二用户子请求,则从所述缓存中获得与所述单独对象的播放范围相同的第二用户子请求所对应的所述单独对象。
3.如权利要求1或2所述的对分片请求进行定长对齐的缓存方法,其特征在于,所述第一播放范围或第二播放范围包括起始字节和结束字节。
4.如权利要求3所述的对分片请求进行定长对齐的缓存方法,其特征在于,所述根据第一播放范围或第二播放范围将所述第一用户请求或第二用户请求切分为多个第一用户子请求或第二用户子请求进一步包括:
根据每个所述第一用户子请求或第二用户子请求中播放范围的长度、所述起始字节和所述结束字节对所述第一用户请求或第二用户请求进行切分。
5.如权利要求1或2所述的对分片请求进行定长对齐的缓存方法,其特征在于,所述第一播放范围或第二播放范围包括起始字节、第一播放范围或第二播放范围的总长度。
6.如权利要求5所述的对分片请求进行定长对齐的缓存方法,其特征在于,所述根据第一播放范围或第二播放范围将所述第一用户请求或第二用户请求切分为多个第一用户子请求或第二用户子请求进一步包括:
根据每个所述第一播放范围或第二播放范围的总长度、所述起始字节对所述第一用户请求或第二用户请求进行切分。
7.如权利要求1或2所述的对分片请求进行定长对齐的缓存方法,其特征在于,还包括:
所述多个第一用户子请求或第二用户子请求为并行发送。
8.如权利要求1或2所述的对分片请求进行定长对齐的缓存方法,其特征在于,还包括:
在处理完所述第一用户请求或第二用户请求所属用户的全部用户请求之后,释放所述多个第一用户子请求或第二用户子请求所占用的资源。
9.一种对分片请求进行定长对齐的缓存***,其特征在于,包括:
源站;
HTTP服务器,所述HTTP服务器具有缓存功能,用于接收具有第一播放范围的第一用户请求,并根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐,以及分别将所述多个第一用户子请求发送至所述源站进行回源操作,并接收所述源站返回的多个分段,和将所述多个分段中的每个分段作为单独对象存储至所述缓存中,其中,每个所述单独对象具有对应的播放范围;
所述HTTP服务器还用于向所述源站发送播放范围请求,所述播放范围请求只请求第一字节。
10.如权利要求9所述的对分片请求进行定长对齐的缓存***,其特征在于,所述HTTP服务器为Nginx服务器。
11.如权利要求9所述的对分片请求进行定长对齐的缓存***,其特征在于,所述HTTP服务器还用于接收具有第二播放范围的第二用户请求,并根据所述第二播放范围将所述第二用户请求切分为多个第二用户子请求,其中,每个所述第二用户子请求具有相同长度的播放范围且所述多个第二用户子请求之间相互对齐,以及在所述多个第二用户子请求中有播放范围与所述缓存中保存的所述单独对象的播放范围相同的第二用户子请求时,从所述缓存中获得与所述播放范围相同的第二用户子请求所对应的所述单独对象。
12.如权利要求9或11所述的对分片请求进行定长对齐的缓存***,其特征在于,所述第一播放范围或第二播放范围包括起始字节和结束字节。
13.如权利要求12所述的对分片请求进行定长对齐的缓存***,其特征在于,所述HTTP服务器根据每个所述第一用户子请求或第二用户子请求中播放范围的长度、所述起始字节和所述结束字节对所述第一用户请求或第二用户请求进行切分。
14.如权利要求9或11所述的对分片请求进行定长对齐的缓存***,其特征在于,所述第一播放范围或第二播放范围包括起始字节、第一播放范围或第二播放范围的总长度。
15.如权利要求14所述的对分片请求进行定长对齐的缓存***,其特征在于,所述HTTP服务器根据每个所述第一播放范围或第二播放范围的总长度、所述起始字节对所述第一用户请求或第二用户请求进行切分。
16.如权利要求9或11所述的对分片请求进行定长对齐的缓存***,其特征在于,其中,所述多个第一用户子请求或第二用户子请求为并行发送。
17.如权利要求9或11所述的对分片请求进行定长对齐的缓存***,其特征在于,所述HTTP服务器还用于在处理完所述第一用户请求或第二用户请求所属用户的全部用户请求之后,释放所述多个第一用户子请求或第二用户子请求所占用的资源。
18.一种HTTP服务器,其特征在于,包括:
接收模块,用于接收具有第一播放范围的第一用户请求;
切分模块,用于根据所述第一播放范围将所述第一用户请求切分为多个第一用户子请求,其中,每个所述第一用户子请求具有相同长度的播放范围且所述多个第一用户子请求之间相互对齐;
回源模块,用于分别将所述多个第一用户子请求发送至源站进行回源操作,并接收所述源站返回的多个分段;以及
缓存模块,用于将所述多个分段中的每个分段作为单独对象进行存储,每个所述单独对象具有对应的播放范围;
所述HTTP服务器还用于向所述源站发送播放范围请求,所述播放范围请求只请求第一字节。
19.如权利要求18所述的HTTP服务器,其特征在于,
所述接收模块,还用于接收具有第二播放范围的第二用户请求;
所述切分模块,还用于根据所述第二播放范围将所述第二用户请求切分为多个第二用户子请求,其中,每个所述第二用户子请求具有相同长度的播放范围且所述多个第二用户子请求之间相互对齐。
20.如权利要求19所述的HTTP服务器,其特征在于,还包括:
调取模块,用于在所述多个第二用户子请求中具有播放范围与所述缓存模块中保存的所述单独对象的播放范围相同的第二用户子请求时,从所述缓存模块中获得与所述播放范围相同的第二用户子请求所对应的所述单独对象。
21.如权利要求19或20所述的HTTP服务器,其特征在于,所述多个第一用户子请求或第二用户子请求为并行发送。
22.如权利要求19所述的HTTP服务器,其特征在于,还包括:
释放模块,用于在处理完所述第一用户请求或第二用户请求所属用户的全部用户请求之后,释放所述多个第一用户子请求或第二用户子请求所占用的资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185452.2A CN103475679B (zh) | 2012-06-06 | 2012-06-06 | 对分片请求进行定长对齐的缓存方法、***及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185452.2A CN103475679B (zh) | 2012-06-06 | 2012-06-06 | 对分片请求进行定长对齐的缓存方法、***及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103475679A CN103475679A (zh) | 2013-12-25 |
CN103475679B true CN103475679B (zh) | 2017-09-26 |
Family
ID=49800374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210185452.2A Active CN103475679B (zh) | 2012-06-06 | 2012-06-06 | 对分片请求进行定长对齐的缓存方法、***及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103475679B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959358A (zh) * | 2016-04-25 | 2016-09-21 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
CN106210803A (zh) * | 2016-07-12 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种媒体节目的播放方法及装置 |
CN108322772A (zh) * | 2018-01-30 | 2018-07-24 | 北京奇艺世纪科技有限公司 | 一种视频文件处理方法、装置及电子设备 |
CN110582007B (zh) * | 2018-06-08 | 2022-04-15 | 阿里巴巴集团控股有限公司 | 多媒体数据预热的方法、装置、***和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102282825A (zh) * | 2010-12-14 | 2011-12-14 | 华为技术有限公司 | 内容传送网络中流媒体请求地址映射的方法及装置、缓存节点 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9003461B2 (en) * | 2002-12-10 | 2015-04-07 | Ol2, Inc. | Streaming interactive video integrated with recorded video segments |
US7587507B2 (en) * | 2005-07-22 | 2009-09-08 | Microsoft Corporation | Media recording functions in a streaming media server |
-
2012
- 2012-06-06 CN CN201210185452.2A patent/CN103475679B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102282825A (zh) * | 2010-12-14 | 2011-12-14 | 华为技术有限公司 | 内容传送网络中流媒体请求地址映射的方法及装置、缓存节点 |
Also Published As
Publication number | Publication date |
---|---|
CN103475679A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103475679B (zh) | 对分片请求进行定长对齐的缓存方法、***及装置 | |
US10652138B2 (en) | Link decision-making method and decision-making device | |
CN106131710B (zh) | 一种视频数据重传的方法及其*** | |
CN102232298B (zh) | 媒体内容的传输处理方法、装置与*** | |
EP2424241B1 (en) | Method, device and system for forwarding video data | |
CN108696772B (zh) | 一种实时视频的传输方法及装置 | |
CN102790925B (zh) | 一种在线流媒体播放的方法及点播终端 | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
CN107197360B (zh) | 一种直播信号安全播出的方法及*** | |
CN101945129A (zh) | P2p流媒体直播的低延时传输方法及*** | |
CN106961625B (zh) | 一种频道切换方法及其装置 | |
EP1806870B1 (en) | Method for providing data and data transmission system | |
CN101472315A (zh) | 无线电信网络中的切换方法和设备 | |
CN103457956A (zh) | 基于多条tcp连接的http流媒体直播方法和*** | |
CN112468841A (zh) | 音频传输方法、装置、智能设备及计算机可读取存储介质 | |
JP2008311947A (ja) | コンテンツ配信システム、コンテンツサーバ、端末、コンテンツ配信方法、プログラムおよび記録媒体 | |
CN110086797B (zh) | 媒体流的实时接收方法、客户端、计算机设备和存储介质 | |
CN113573003B (zh) | 一种基于弱网的音视频实时通信方法、装置以及设备 | |
US8699352B2 (en) | Timer optimization techniques for multicast to unicast conversion of internet protocol video | |
CN117082054A (zh) | 一种数据传输方法、装置、***和介质 | |
CN104753813B (zh) | Dma传送报文的方法 | |
CN104469538B (zh) | 面向画面画质较小损失的rtp视频流数据包重组方法 | |
CN101146221B (zh) | P2p直播中播放指针动态调整的方法及*** | |
GB2543840A (en) | Method and server for managing the transmission of packets over a plurality of paths | |
CN110365997A (zh) | 一种低延迟的互动教学直播方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |