CN112836152A - 页面渲染方法、***、计算机设备及计算机可读存储介质 - Google Patents
页面渲染方法、***、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112836152A CN112836152A CN201911156537.6A CN201911156537A CN112836152A CN 112836152 A CN112836152 A CN 112836152A CN 201911156537 A CN201911156537 A CN 201911156537A CN 112836152 A CN112836152 A CN 112836152A
- Authority
- CN
- China
- Prior art keywords
- page
- rendering
- target
- cache
- rendered
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种接收客户端提供的页面获取请求;基于所述页面获取请求,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的;如果所述缓存中包括所述目标渲染页面,则执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端;及如果所述缓存中不包括所述目标渲染页面,则将待渲染的目标页面资源发送至所述客户端。本申请还提供了面渲染方法***、计算机设备及计算机可读存储介质。本申请实施例可以避免缓存穿透和服务雪崩的***风险,可以承载较高的QPS,以及具有较好的***稳定性。
Description
技术领域
本申请实施例涉及数据处理领域,尤其涉及一种页面渲染方法、***、计算机设备及计算机可读存储介质。
背景技术
现有的页面渲染方式包括客户端渲染和服务端渲染。浏览器端渲染是指由诸如浏览器等程序将数据渲染为页面,通过浏览器端渲染方式得到的页面。服务端渲染是指先由服务端进行至少部分页面渲染,并将渲染结果发送给浏览器。以服务端渲染为例,业界(如,Vue社区)已经提供有比较完整的服务端渲染方案。
然而,对于当前业界提供的服务端渲染方案,本发明人认为至少具有如下技术缺陷:在页面数据在缓存失效或不存在的情况下,基于客户端请求对该页面数据立即运行服务端渲染逻辑,从而出现缓存穿透的***风险;且在高QPS (query per second,每秒查询率)的情况下,由缓存穿透进而诱发的服务雪崩的***风险;还具有QPS承受能力低以及***不稳定的问题。
发明内容
有鉴于此,本申请实施例的目的是提供一种页面渲染方法、***、计算机设备及计算机可读存储介质,用于解决缓存穿透、***雪崩、QPS承受能力低以及***不稳定等问题。
本申请实施例的一个方面提供了一种页面渲染方法,包括:接收客户端提供的页面获取请求;基于所述页面获取请求,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的;如果所述缓存中包括所述目标渲染页面,则执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端;及如果所述缓存中不包括所述目标渲染页面,则将待渲染的目标页面资源发送至所述客户端。
可选的,还包括:以预定频率执行数据写入操作,所述数据写入操作用于将多个页面资源渲染后写入到所述缓存中。
可选的,所述数据读取操作运行在第一容器中,所述写入操作运作在第二容器中,其中,所述第一容器和所述第二容器是不同的容器。
可选的,以预定频率执行数据写入操作,包括:响应于预先设置的定时信号,执行第i批数据写入操作:获取与所述第i批数据写入操作对应的页面列表,所述页面列表包括多个页面标识,所述多个页面标识用于标识所述多个页面资源;对所述多个页面资源进行渲染操作以生成多个渲染页面;及将所述多个渲染页面写入到所述缓存中,所述多个渲染页面用于为所述数据读取操作提供读取内容。
可选的,所述多个页面标识包括多个直播间标识,用于标识多个网络直播间;获取与所述第i批数据写入操作对应的页面列表,包括:检测多个网络直播间的使用状态;根据所述使用状态从所述多个网络直播间中选择多个目标网络直播间;及记录所述多个目标网络直播间对应的多个直播间标识,以得到所述页面列表。
可选的,所述使用状态包括活动状态和非活动状态;根据所述使用状态从所述多个网络直播间中选择多个目标网络直播间,包括:将处于所述活动状态中的多个网络直播间选择作为所述多个目标网络直播间。
可选的,对所述多个页面资源进行渲染操作以生成多个渲染页面,包括:根据所述页面列表中的各个直播间标识,获取所述多个页面资源中的各个页面资源的页面数据;及基于预设页面模板以及所述各个页面资源的页面数据执行页面渲染操作,以生成所述多个渲染页面中的各个渲染页面。
可选的,检测所述页面获取请求是否关联于故障页面资源,所述故障页面资源包括出现渲染故障的页面资源;及如果所述页面获取请求关联于故障页面资源,则将所述待渲染的目标页面资源发送到所述客户端。
可选的,检测所述页面获取请求是否关联于故障页面资源,包括:检测所述页面获取请求中的目标页面标识是否被列入黑名单中,所述黑名单被预先配置并用于记录各个故障页面资源的页面标识,其中所述目标页面标识用于标识目标页面资源。
可选的,还包括:判断是否存在服务故障,所述服务故障包括缓存读取故障;及如果存在所述服务故障,则将所述待渲染的目标页面资源发送到所述客户端。
可选的,还包括:判断所述目标渲染页面是否从所述缓存中被成功读取;及如果所述目标渲染页面是所述缓存中未被成功读取,则将所述待渲染的目标页面资源发送到所述客户端。
本申请实施例的一个方面又提供了一种页面渲染***,所述页面渲染***包括接收模块、检测模块、读取模块和发送模块。
接收模块,用于接收客户端提供的页面获取请求。检测模块,用于基于所述页面获取请求,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的。读取模块,用于如果所述缓存中包括所述目标渲染页面,则执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端。发送模块,用于如果所述缓存中不包括所述目标渲染页面,则将待渲染的目标页面资源发送至所述客户端。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现上述页面渲染方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述页面渲染方法的步骤。
本申请实施例提供的页面渲染方法、***、设备及计算机可读存储介质,当缓存中存在目标渲染页面时,则为客户端提供目标渲染页面;当缓存中不存在目标渲染页面时,不运行服务端渲染逻辑以节省计算资源,而是为客户端提供未经渲染的原始页面资源(由客户端执行渲染操作),从而使得内容提供者避免了缓存穿透的***风险,进而避免了高QPS情况下的服务雪崩的***风险;另外,不运行服务端渲染逻辑所节省的计算资源,还可以确保能够承载较高的 QPS,提升***稳定性。
附图说明
图1示意性示出了根据本申请实施例一的页面渲染方法的应用环境图;
图2示意性示出了根据本申请实施例一的页面渲染方法的流程图;
图3示意性示出了根据本申请实施例二的页面渲染方法的流程图;
图4为图3中步骤S302的具体流程图;
图5为图4中步骤S402的具体流程图;
图6示意性示出了根据本申请实施例二的页面写入和读取的流程图;
图7示意性示出了根据本申请实施例三的页面渲染方法的流程图;
图8示意性示出了根据本申请实施例四的页面渲染方法的流程图;
图9示意性示出了根据本申请实施例五的通信***的框图;以及
图10示意性示出了根据本申请实施例六的适于实现页面渲染方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请实施例,并不用于限定本申请实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
对于当前业界提供的服务端渲染方案,本发明人认为至少具有如下技术缺陷:在页面数据在缓存失效或不存在的情况下,基于客户端请求对该页面数据立即运行服务端渲染逻辑,从而出现缓存穿透的***风险;且在高QPS(query per second,每秒查询率)的情况下,由缓存穿透进而诱发的服务雪崩的***风险;还具有QPS承受能力低以及***不稳定的问题。
渲染过程资源占用高,同等条件下承载的很难满足业务的需要,所以通常情况下会搭配缓存***一起使用。然而传统的缓存模型在某些情况下会存在击穿的风险,致使渲染过程经历超出其服务能力的突发的高QPS攻击,极易导致服务的不稳定甚至崩溃。
下文将提供多个实施例,不难理解,下文提供的各个实施例可以用于解决上文描述的一个或多个技术问题。
图1示意性示出了根据本申请实施例一的页面渲染方法的环境应用示意图。在示例性的实施例中,在示例性的实施例中,内容提供者2可以通过网络9连接多个客户端10。
内容提供者2可以通过一个或多个网络9提供服务。网络9可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络9可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络9可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物。
内容提供者2,可以由单个或多个计算机设备(如,服务器)组成。该单个或多个计算设备可以包括虚拟化计算实例。虚拟化计算实例可以包括虚拟机,诸如计算机***的仿真,操作***,服务器等。计算设备可以基于定义用于仿真的特定软件(例如,操作***,专用应用程序,服务器)的虚拟映像和/或其他数据来加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算设备上加载和/或终止不同的虚拟机。可以实现管理程序以管理同一计算设备上的不同虚拟机的使用。
当由单个计算机设备组成时,该单个计算机设备分配有数据存储区域3和数据缓存区域6。该数据存储区域可以用于放置原始数据,如页面原始资源。该数据缓存区域可以用于放置缓存区域,如渲染后的渲染页面。
当由多个计算机设备组成时,该多个计算机设备中的部分计算机设备可以作为数据存储区域3,一部分计算机设备可以作为数据缓存区域6,以及一部分计算机设备作为用于提供一些特定服务的数据处理节点,这些特定服务包括数据库管理服务、缓存管理服务等。
多个客户端10可以被配置为访问内容提供者2的内容和服务。多个客户端 10可以包括任何类型的计算设备,诸如移动设备,平板设备,膝上型计算机,计算站,智能设备(例如,智能服饰,智能手表,智能扬声器,智能眼镜),虚拟现实耳机,游戏设备,机顶盒,数字流设备,机器人,车载终端,智能电视,电视盒,电子书阅读器,MP3(运动图像专家组音频层III)播放器,MP4(运动图像专家组音频层IV)播放器等。
多个客户端10可以与一个或多个用户相关联。单个用户可以使用多个客户端10中的一个或多个来访问内容提供者2。多个客户端10可以使用不同的网络来访问内容提供者2。
示例性的实施例中,客户端10可以包括应用程序12。应用程序12向用户输出(例如,显示,呈现)内容。所述内容可以页面方式呈现可以包括视频,音频,评论,文本数据和/或类似物。应用程序12还可以提供用于导航各种内容的菜单。
客户端10可以包括客户端接口16,该客户端接口16可以包括输入元件。例如,输入元素可以被配置为接收用户指令。在一些实施例中,客户端10可以根据用户指令生成并发送页面获取请求。
实施例一
图2示意性示出了根据本申请实施例一的页面渲染方法的流程图。可以理解,本方法实施例可以被执行在内容提供者2(各个计算机设备)中,且本方法实施例的流程图不用于对执行步骤的顺序进行限定。
如图2所示,该页面渲染方法可以包括步骤S200~S206,其中:
步骤S200,接收客户端发送的页面获取请求。
所述页面获取请求可以是基于HTTP(超文本传输协议,HyperText TransferProtocol)协议的HTTP请求。基于该HTTP请求,所述内容提供者2可以执行相应的响应操作,如执行返回页面数据的响应操作。
步骤S202,基于所述页面获取请求,检测缓存中是否包括目标渲染页面。如果是,则进入步骤S204;否则,进入步骤S206。
所述目标渲染页面是待渲染的目标页面资源经过渲染得到的,并被写入到所述缓存中。
在示例性的实施例中,可以预先配置页面写入规则,并基于该页面写入规则执行数据写入操作,以将部分页面的页面资源经进行渲染并将渲染后得到的渲染页面预先存储在缓存中。
以其中某个页面A为例,来解释所述数据写入操作的操作过程:
S1,通过指定数据库中获取所述页面A的页面数据A1。
S2,根据所述页面数据A1和预设页面模板A2执行页面渲染操作。
渲染操作,在于运行Javascript脚本以请求动态的页面数据,并将请求到的页面数据,结合预设的模板,转换成可以由浏览器客户端程序展示的HTML (HyperText MarkupLanguage,超文本标记语言)文件。
例如,可以基于Vue渲染机制执行页面渲染操作,其操作过程如下:(1) 通过Vue渲染模块的编译器对预设页面模板A2进行编译,以得到相应的渲染函数;(2)运行所述渲染函数以获得一个虚拟DOM(文档对象模型,document object model)树;(3)根据一定的规则,将虚拟DOM树转化为可以被浏览器客户端程序识别的HTML文件。
需要说明的是,所述预设页面模板A2,是由包含实际业务逻辑的Javascript 脚本以及一部分预设的HTML代码段所组成的。
S3,将执行所述页面渲染操作得到的渲染页面写入到所述缓存中。
步骤S204,执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端。
在示例性的实施例中,将读取的目标渲染页面定义为至少一个HTTP响应消息,以返回到所述客户端中。不难理解,由于客户端接收到的目标渲染页面是在内容提供者2中被预先渲染过的内容,因此,客户端无须执行渲染操作或者仅需部分渲染(如,开销很小的二次渲染),即可展示到预定显示区域。
步骤S206,将待渲染的目标页面资源发送至所述客户端。
其中,所述待渲染的目标页面资源可以为未经渲染的原始页面资源。所述原始页面资源可以包括目标页面数据和/或目标页面模板,且可以位于内容提供者2的数据存储区域3中。
即,检查缓存(Memcache)中是否有被请求的页面,有,则返回缓存中的内容,没有,则返回降级的页面(如,未被渲染过的原始页面资源),以通过客户端执行页面渲染。
在示例性的实施例中,将所述待渲染的目标页面资源定义为至少一个 HTTP响应消息,以返回到所述客户端中。不难理解,由于客户端接收到的目标页面资源是在内容提供者2中未被渲染过的原始页面资源,因此,客户端需执行渲染操作,并将执行所述渲染操作得到的内容展示在预定显示区域。
如上所述,实施例一所述的页面渲染方法:
当缓存中存在目标渲染页面时,则为客户端提供目标渲染页面;当缓存中不存在目标渲染页面时,不运行服务端渲染逻辑以节省计算资源,而是为客户端提供待渲染的目标页面资源(由客户端执行渲染操作),从而使得内容提供者 2避免了缓存穿透的***风险,并进而避免了高QPS情况下的服务雪崩的***风险;另外,不运行服务端渲染逻辑所节省的计算资源,还可以确保内容提供者2能够承载较高的QPS,提升***稳定性。不难理解,本实施例可以避免渲染过程超出其服务能力的突发的高QPS攻击,维持了服务的稳定性。
实施例二
图3示意性示出了根据本申请实施例二的页面渲染方法的流程图。本方法实施例的流程图不用于对执行步骤的顺序进行限定。如图3所示,该页面渲染方法可以包括步骤S300~S306,其中:
步骤S300,为数据读取操作配置第一容器,为数据写入操作配置第二容器。
其中,所述第一容器和所述第二容器是不同的各自独立的容器。不难理解,通过配置第二容器和第一容器,将数据写入操作和数据读取操作从容器层面进行隔离操作,以防止两者间的相互影响。
步骤S302,在第二容器中以预定频率执行数据写入操作。
所述数据写入操作,用于将多个页面资源渲染后写入到缓存中。
在示例性的实施例中,所述步骤S300可以包括步骤:响应于预先设置的定时信号,执行第i批数据写入操作。i为大于0的正整数。所述定时信号,其触发时间间隔可以由用户预先设定,也可以根据内容提供者2的计算资源(如, CPU占有率)动态设定。
如图4所示,所述步骤S302可以包括子步骤S400~S404:
子步骤S400,获取与所述第i批数据写入操作对应的页面列表。
所述页面列表包括多个页面标识。所述多个页面标识用于标识对应的多个页面资源,每个页面资源包括相应的页面数据和页面模板。示例性的,页面模板可以为公用模板。
在示例性的实施例中,所述多个页面标识包括多个直播间标识(如,房间号),所述多个直播间标识用于标识多个网络直播间。如图5所示,所述子步骤 S400可以子步骤S500~S504,其中:子步骤S500,检测多个网络直播间的使用状态。所述使用状态可以包括活动状态和非活动状态。子步骤S502,根据所述使用状态从所述多个网络直播间中选择多个目标网络直播间,例如:将处于所述活动状态中的多个网络直播间选择作为所述多个目标网络直播间。子步骤S504,记录所述多个目标网络直播间对应的多个直播间标识(如,标签号),以得到所述页面列表。
举例而言:内容提供者2中可以配置有至少一个用于管理内容的计算机设备(下称,内容管理服务器),该内容管理服务器用户管理直播平台的播放内容,用于储存直播平台各网络直播间的标签号、该标签号所对应的网络直播间的使用状态,以及该标签号的网络直播间对应的当前播放的页面数据。其中,标签号和页面数据可以以key-value(键值对)的方式被储存在所述内容管理服务器中,其中,标签号为页面数据的主键,页面数据为标签号的值。当内容提供者 2接收或产生一个定时信号,则可以检测直播平台上哪些直播间处于活动状态,将处于活动状态的网络直播间作为目标网络直播间,将目标直播间的标签号记录到页面列表中。不难理解,所述标签号用于作为相应网络直播间的页面数据的调用标识。
子步骤S402,对所述多个页面资源进行渲染操作以生成多个渲染页面。
在示例性的实施例中,如图5所示,所述步骤S402可以包括步骤S500~S502:步骤S500,根据所述页面列表中的各个直播间标识,获取所述多个页面资源中的各个页面资源的页面数据。步骤S502,基于预设页面模板以及所述各个页面资源的页面数据执行页面渲染操作,以生成所述多个渲染页面中的各个渲染页面。例如,根据页面列表中的标签号A1、A2、….,依次从内容管理服务器中获取与各个标签号关联的页面数据;基于各个标签号关联的页面数据和预设页面模板执行页面渲染操作,生成渲染页面B1、B2、….。
子步骤S404,将所述多个渲染页面写入到所述缓存中,所述多个渲染页面用于为所述数据读取操作提供读取内容。
步骤S304,在第一容器中执行数据读取操作,包括以下步骤:
步骤S304A,接收客户端发送的页面获取请求。
所述页面获取请求可以是基于HTTP(超文本传输协议,HyperText TransferProtocol)协议的HTTP请求。基于该HTTP请求,所述内容提供者2可以执行相应的响应操作,如执行返回页面数据的响应操作。
步骤S304B,基于所述页面获取请求,检测缓存中是否包括目标渲染页面。如果是,则进入步骤S304C;否则,进入步骤S304D。
所述目标渲染页面为已渲染的目标页面资源,可以是基于步骤S302得到的多个渲染页面中的其中一个渲染页面。
步骤S304C,执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端。
在示例性的实施例中,将读取的目标渲染页面定义为至少一个HTTP响应消息,以返回到所述客户端中。不难理解,由于客户端接收到的目标渲染页面是在内容提供者2中被预先渲染过的内容,因此,客户端无须执行渲染操作或者仅需部分渲染,即可展示到预定显示区域。
步骤S304D,将待渲染的目标页面资源发送至所述客户端。
在示例性的实施例中,所述目标页面资源为未经渲染的原始页面资源。
所述原始页面资源包括目标页面模板,且可以位于所述内容提供者2的数据存取区域中。不难理解,内容提供者2将所述目标页面模板返回至客户端中。客户端接收所述目标页面模板,基于所述目标页面模板向所述内容提供者2请求获取目标页面数据,基于所述目标页面模板和所述目标页面数据执行渲染操作,并将执行所述渲染操作得到的内容展示在预定显示区域。
如上所述,实施例二所述的页面渲染方法:
将写入缓存和读取缓存两个操作(即,数据写入操作和数据读取操作),在服务层面进行隔离。如图6所示,数据写入操作在于负责定时将渲染得到的渲染页面写入到缓存(如,Memcache缓存)中,而不受用户请求的干扰;数据读取操作在于负责处理用户请求(如,页面获取请求),并基于用户请求按需从缓存中读取并返回相应的渲染页面(如,HTML页面)。为节省计算资源,该数据读取操作并不用于执行页面渲染操作。因此,当所述缓存没有用户请求的渲染页面时,内容提供者2会直接返回待渲染的页面模板或页面数据给客户端,由客户端来执行页面渲染操作。
通过以上可知,写入缓存和读取缓存间的隔离以及计算资源的节省,有效优化了内容提供者2在运作过程中的计算资源分配,可以使得内容提供者2避免了缓存穿透的***风险,并进而避免了高QPS情况下的服务雪崩的***风险;还可以确保内容提供者2能够承载较高的QPS,提升***稳定性。
实施例三
图7示意性示出了根据本申请实施例三的页面渲染方法的流程图。本方法实施例的流程图不用于对执行步骤的顺序进行限定。如图7所示,该页面渲染方法可以包括步骤S700~S710,其中:
步骤S700,接收客户端发送的页面获取请求,所述页面获取请求用于请求目标页面资源。
步骤S702,检测所述页面获取请求是否关联于故障页面资源,所述故障页面资源包括出现渲染故障的页面资源。如果是,则进入步骤S710;否则,进入步骤S704。
在示例性的实施例中,所述步骤S702可以包括步骤:检测所述页面获取请求中的目标页面标识是否被列入黑名单中,所述黑名单被预先配置并用于记录各个故障页面资源的页面标识,其中所述目标页面标识用于标识目标页面资源。
步骤S704,判断是否存在服务故障,所述服务故障包括缓存读取故障。如果是,则进入步骤S710;否则,进入步骤S706。
步骤S706,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的。如果是,则进入步骤S708;否则,进入步骤S710。
步骤S708,执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端。
步骤S710,将待渲染的目标页面资源发送至所述客户端。
如上所述,实施例三所述的页面渲染方法:
当所述目标页面资源为故障页面资源(如,请求号对应的超文本页面为问题页面)、缓存有读取故障或者缓存中没有目标渲染页面(如,请求号对应的超文本页面),进行降级处理,将目标页面资源对应的原始页面数据直接发送至客户端,由客户端执行页面渲染操作。
通过以上降级处理方式,可以进一步优化内容提供者2在运行过程中的计算资源分配,从而使得内容提供者2避免了缓存穿透的***风险,并进而避免了高QPS情况下的服务雪崩的***风险;还可以确保内容提供者2能够承载较高的QPS,提升***稳定性。
实施例四
图8示意性示出了根据本申请实施例四的页面渲染方法的流程图。本方法实施例的流程图不用于对执行步骤的顺序进行限定。如图8所示,该页面渲染方法可以包括步骤S800~S810,其中:
步骤S800,接收客户端发送的页面获取请求。
步骤S802,基于所述页面获取请求,检测缓存中是否包括目标渲染页面。如果是,进入步骤S804;否则,进入步骤S810。
步骤S804,读取所述缓存中的所述目标渲染页面;
步骤S806,判断所述目标渲染页面是否从所述缓存中被成功读取。如果是,则进入步骤S808;否则,进入步骤S810。
步骤S808,将所述目标渲染页面发送至所述客户端。
步骤S810,将待渲染的目标页面资源发送至所述客户端。
如上所述,实施例四所述的页面渲染方法:
当缓存中没有目标渲染页面时执行主动降级处理,以及当目标渲染页面从缓存中提取失败时执行被动降级处理。主动降级处理和被动降级处理,在于将目标页面资源对应的原始页面数据直接发送至客户端,由客户端执行页面渲染操作。
通过以上降级处理方式,可以进一步优化内容提供者2在运行过程中的计算资源分配,从而使得内容提供者2避免了缓存穿透的***风险,并进而避免了高QPS情况下的服务雪崩的***风险;还可以确保内容提供者2能够承载较高的QPS,提升***稳定性。
实施例五
图9示意性示出了根据本申请实施例五的通信***的框图,该通信***可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理***在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图9所示,该页面渲染***900可以包括接收模块910、检测模块920、读取模块930、发送模块940及写入模块950,其中:
接收模块910,用于接收客户端提供的页面获取请求;
检测模块920,用于基于所述页面获取请求,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的;
读取模块930,用于如果所述缓存中包括所述目标渲染页面,则执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端;及
发送模块940,用于如果所述缓存中不包括所述目标渲染页面,则将待渲染的目标页面资源发送至所述客户端。
在示例性的实施例中,所述写入模块950,用于:以预定频率执行数据写入操作,所述数据写入操作用于将对应的多个页面资源渲染后写入到所述缓存中。
在示例性的实施例中,所述数据读取操作运行在第一容器中,所述写入操作运作在第二容器中,其中,所述第一容器和所述第二容器是不同的容器。
在示例性的实施例中,所述写入模块950,还用于:响应于预先设置的定时信号,执行第i批数据写入操作:获取与所述第i批数据写入操作对应的页面列表,所述页面列表包括多个页面标识,所述多个页面标识用于标识所述多个页面资源;对所述多个页面资源进行渲染操作以生成多个渲染页面;及将所述多个渲染页面写入到所述缓存中,所述多个渲染页面用于为所述数据读取操作提供读取内容。
在示例性的实施例中,所述多个页面标识包括多个直播间标识,用于标识多个网络直播间。所述写入模块950,还用于:检测多个网络直播间的使用状态;根据所述使用状态从所述多个网络直播间中选择多个目标网络直播间;及记录所述多个目标网络直播间对应的多个直播间标识,以得到所述页面列表。
在示例性的实施例中,所述写入模块950,还用于:将处于所述活动状态中的多个网络直播间选择作为所述多个目标网络直播间。
在示例性的实施例中,所述写入模块950,还用于:根据所述页面列表中的各个直播间标识,获取所述多个页面资源中的各个页面资源的页面数据;及基于预设页面模板以及所述各个页面资源的页面数据执行页面渲染操作,以生成所述多个渲染页面中的各个渲染页面。
在示例性的实施例中,所述检测模块920,还用于:检测所述页面获取请求是否关联于故障页面资源,所述故障页面资源包括出现渲染故障的页面资源。所述发送模块940,还用于:如果所述页面获取请求关联于故障页面资源,则将所述待渲染的目标页面资源发送到所述客户端。
在示例性的实施例中,所述检测模块920,还用于:检测所述页面获取请求中的目标页面标识是否被列入黑名单中,所述黑名单被预先配置并用于记录各个故障页面资源的页面标识,其中所述目标页面标识用于标识目标页面资源。
在示例性的实施例中,所述检测模块920,还用于:判断是否存在服务故障,所述服务故障包括缓存读取故障。所述发送模块940,还用于:如果存在所述服务故障,则将所述待渲染的目标页面资源发送到所述客户端。
在示例性的实施例中,所述检测模块920,还用于:判断所述目标渲染页面是否从所述缓存中被成功读取。所述发送模块940,还用于:如果所述目标渲染页面是否从所述缓存中未被成功读取,则将所述待渲染的目标页面资源发送到所述客户端。
实施例六
图10示意性示出了根据本申请实施例六的适于实现页面渲染方法的计算机设备的硬件架构示意图。该计算机设备可以是内容提供者2或内容提供者2 中的一个节点设备。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图10所示,计算机设备2至少包括但不限于:可通过***总线相互通信链接存储器1010、处理器1020、网络接口1030。其中:
存储器1010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1010可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器1010 也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(FlashCard)等。当然,存储器1010还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器1010 通常用于存储安装于计算机设备2的操作***和各类应用软件,例如页面渲染方法的程序代码等。此外,存储器1010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1020通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器1020用于运行存储器1010中存储的程序代码或者处理数据。
网络接口1030可包括无线网络接口或有线网络接口,该网络接口1030通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口 1030用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图10仅示出了具有部件1010-1030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1010中的页面渲染方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器1020)所执行,以完成本发明。
实施例七
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的页面渲染方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例中的页面渲染方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种页面渲染方法,其特征在于,包括:
接收客户端提供的页面获取请求;
基于所述页面获取请求,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的;
如果所述缓存中包括所述目标渲染页面,则执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端;及
如果所述缓存中不包括所述目标渲染页面,则将待渲染的目标页面资源发送至所述客户端。
2.根据权利要求1所述的页面渲染方法,其特征在于,还包括:
以预定频率执行数据写入操作,所述数据写入操作用于将多个页面资源渲染后写入到所述缓存中。
3.根据权利要求2所述的页面渲染方法,其特征在于,所述数据读取操作运行在第一容器中,所述写入操作运作在第二容器中,其中,所述第一容器和所述第二容器是不同的容器。
4.根据权利要求3所述的页面渲染方法,其特征在于,以预定频率执行数据写入操作,包括:
响应于预先设置的定时信号,执行第i批数据写入操作:
获取与所述第i批数据写入操作对应的页面列表,所述页面列表包括多个页面标识,所述多个页面标识用于标识所述多个页面资源;
对所述多个页面资源进行渲染操作以生成多个渲染页面;及
将所述多个渲染页面写入到所述缓存中,所述多个渲染页面用于为所述数据读取操作提供读取内容。
5.根据权利要求4所述的页面渲染方法,其特征在于,所述多个页面标识包括多个直播间标识,用于标识多个网络直播间;获取与所述第i批数据写入操作对应的页面列表,包括:
检测多个网络直播间的使用状态;
根据所述使用状态从所述多个网络直播间中选择多个目标网络直播间;及
记录所述多个目标网络直播间对应的所述多个直播间标识,以得到所述页面列表。
6.根据权利要求5所述的页面渲染方法,其特征在于,所述使用状态包括活动状态和非活动状态;根据所述使用状态从所述多个网络直播间中选择多个目标网络直播间,包括:
将处于所述活动状态中的多个网络直播间选择作为所述多个目标网络直播间。
7.根据权利要求5所述的页面渲染方法,其特征在于,对所述多个页面资源进行渲染操作以生成多个渲染页面,包括:
根据所述页面列表中的各个直播间标识,获取所述多个页面资源中的各个页面资源的页面数据;及
基于预设页面模板以及所述各个页面资源的页面数据执行页面渲染操作,以生成所述多个渲染页面中的各个渲染页面。
8.根据权利要求1所述的页面渲染方法,其特征在于,还包括:
检测所述页面获取请求是否关联于故障页面资源,所述故障页面资源包括出现渲染故障的页面资源;及
如果所述页面获取请求关联于所述故障页面资源,则将所述待渲染的目标页面资源发送到所述客户端。
9.根据权利要求8所述的页面渲染方法,其特征在于,所述检测所述页面获取请求是否关联于故障页面资源,包括:
检测所述页面获取请求中的目标页面标识是否被列入黑名单中,所述黑名单被预先配置并用于记录各个故障页面资源的页面标识,其中所述目标页面标识用于标识目标页面资源。
10.根据权利要求1所述的页面渲染方法,其特征在于,还包括:
判断是否存在服务故障,所述服务故障包括缓存读取故障;及
如果存在所述服务故障,则将所述待渲染的目标页面资源发送到所述客户端。
11.根据权利要求1所述的页面渲染方法,其特征在于,还包括:
判断所述目标渲染页面是否从所述缓存中被成功读取;及
如果所述目标渲染页面从所述缓存中未被成功读取,则将所述待渲染的目标页面资源发送到所述客户端。
12.一种页面渲染***,其特征在于,所述页面渲染***包括:
接收模块,用于接收客户端提供的页面获取请求;
检测模块,用于基于所述页面获取请求,检测缓存中是否包括目标渲染页面,所述目标渲染页面是待渲染的目标页面资源经过渲染得到的;
读取模块,用于如果所述缓存中包括所述目标渲染页面,则执行数据读取操作:从所述缓存中读取所述目标渲染页面以发送至所述客户端;及
发送模块,用于如果所述缓存中不包括所述目标渲染页面,则将待渲染的目标页面资源发送至所述客户端。
13.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156537.6A CN112836152B (zh) | 2019-11-22 | 2019-11-22 | 页面渲染方法、***、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156537.6A CN112836152B (zh) | 2019-11-22 | 2019-11-22 | 页面渲染方法、***、计算机设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112836152A true CN112836152A (zh) | 2021-05-25 |
CN112836152B CN112836152B (zh) | 2023-03-10 |
Family
ID=75921938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911156537.6A Active CN112836152B (zh) | 2019-11-22 | 2019-11-22 | 页面渲染方法、***、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112836152B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438302A (zh) * | 2021-06-23 | 2021-09-24 | 平安养老保险股份有限公司 | 动态资源多级缓存方法、***、计算机设备及存储介质 |
CN113704648A (zh) * | 2021-08-31 | 2021-11-26 | 平安普惠企业管理有限公司 | 页面数据处理方法、装置、设备及存储介质 |
CN113849255A (zh) * | 2021-09-17 | 2021-12-28 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、设备以及存储介质 |
CN114595017A (zh) * | 2022-01-18 | 2022-06-07 | 阿里巴巴(中国)有限公司 | 数据显示方法和装置、电子设备及计算机可读存储介质 |
WO2024051433A1 (zh) * | 2022-09-06 | 2024-03-14 | 福建福昕软件开发股份有限公司 | 一种pdf页面渲染缓存的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573025A (zh) * | 2015-01-12 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 一种提高页面加载速度的方法及*** |
CN105468324A (zh) * | 2015-12-25 | 2016-04-06 | 北京奇虎科技有限公司 | 页面显示方法、装置及*** |
CN107025583A (zh) * | 2016-01-29 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 一种页面控件的渲染方法、设备和终端设备 |
CN108241703A (zh) * | 2016-12-27 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 网页数据传输方法和装置 |
CN108280119A (zh) * | 2017-11-29 | 2018-07-13 | 广州市动景计算机科技有限公司 | 页面生成方法、装置及用户终端 |
CN109241471A (zh) * | 2018-10-26 | 2019-01-18 | 珠海格力电器股份有限公司 | 页面渲染方法、服务器、浏览器和能源信息管理*** |
CN109684575A (zh) * | 2018-10-30 | 2019-04-26 | 平安科技(深圳)有限公司 | 网页数据的处理方法及装置、存储介质、计算机设备 |
CN110020367A (zh) * | 2017-12-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
-
2019
- 2019-11-22 CN CN201911156537.6A patent/CN112836152B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573025A (zh) * | 2015-01-12 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 一种提高页面加载速度的方法及*** |
CN105468324A (zh) * | 2015-12-25 | 2016-04-06 | 北京奇虎科技有限公司 | 页面显示方法、装置及*** |
CN107025583A (zh) * | 2016-01-29 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 一种页面控件的渲染方法、设备和终端设备 |
CN108241703A (zh) * | 2016-12-27 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 网页数据传输方法和装置 |
CN108280119A (zh) * | 2017-11-29 | 2018-07-13 | 广州市动景计算机科技有限公司 | 页面生成方法、装置及用户终端 |
CN110020367A (zh) * | 2017-12-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
CN109241471A (zh) * | 2018-10-26 | 2019-01-18 | 珠海格力电器股份有限公司 | 页面渲染方法、服务器、浏览器和能源信息管理*** |
CN109684575A (zh) * | 2018-10-30 | 2019-04-26 | 平安科技(深圳)有限公司 | 网页数据的处理方法及装置、存储介质、计算机设备 |
Non-Patent Citations (1)
Title |
---|
INFOQ墨影: "如何搭建一个高可用的服务端渲染工程", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/NEWS/451883,知乎》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438302A (zh) * | 2021-06-23 | 2021-09-24 | 平安养老保险股份有限公司 | 动态资源多级缓存方法、***、计算机设备及存储介质 |
CN113704648A (zh) * | 2021-08-31 | 2021-11-26 | 平安普惠企业管理有限公司 | 页面数据处理方法、装置、设备及存储介质 |
CN113849255A (zh) * | 2021-09-17 | 2021-12-28 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、设备以及存储介质 |
CN113849255B (zh) * | 2021-09-17 | 2024-04-16 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、设备以及存储介质 |
CN114595017A (zh) * | 2022-01-18 | 2022-06-07 | 阿里巴巴(中国)有限公司 | 数据显示方法和装置、电子设备及计算机可读存储介质 |
CN114595017B (zh) * | 2022-01-18 | 2024-05-10 | 阿里巴巴(中国)有限公司 | 数据显示方法和装置、电子设备及计算机可读存储介质 |
WO2024051433A1 (zh) * | 2022-09-06 | 2024-03-14 | 福建福昕软件开发股份有限公司 | 一种pdf页面渲染缓存的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112836152B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112836152B (zh) | 页面渲染方法、***、计算机设备及计算机可读存储介质 | |
US9264335B2 (en) | Adaptive packaging of network resources | |
US10356156B2 (en) | Method and device for loading webpage | |
CN109068153B (zh) | 视频播放方法、装置和计算机可读存储介质 | |
US20120324043A1 (en) | Access to network content | |
CN109714430A (zh) | 分布式缓存方法、装置、计算机***及存储介质 | |
CN112714365B (zh) | 视频播放方法和*** | |
CN110457632B (zh) | 网页加载的处理方法及装置 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN111800511B (zh) | 同步登录态的处理方法、***、设备及可读存储介质 | |
CN110881224A (zh) | 一种网络长连接方法、装置、设备及存储介质 | |
CN113806008A (zh) | 集群访问方法、装置、电子设备及可读存储介质 | |
CN111400051B (zh) | 一种资源调度方法、装置及*** | |
CN113569173A (zh) | 页面加载方法及装置、存储介质、电子设备 | |
CN112818270A (zh) | 数据跨域传递方法、装置及计算机设备 | |
CN117041234A (zh) | web端与原生端的交互方法及终端设备 | |
US10110502B1 (en) | Autonomous host deployment in managed deployment systems | |
CN115225950A (zh) | 视频的播放控制方法和装置 | |
CN105338058A (zh) | 一种应用更新的方法及装置 | |
CN115022278A (zh) | Cdn处理方法和*** | |
CN113347234B (zh) | 网络信息获取方法、装置、***、计算机设备和存储介质 | |
CN101877722A (zh) | 电子节目指南***及文件下载方法 | |
CN111013157A (zh) | 游戏加载方法、装置、设备及存储介质 | |
CN114610331A (zh) | 软件安装方法和*** | |
CN116743589B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |