[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN110442325A - 基于nodejs渲染池的架构模型以及页面处理方法 - Google Patents

基于nodejs渲染池的架构模型以及页面处理方法 Download PDF

Info

Publication number
CN110442325A
CN110442325A CN201910679389.XA CN201910679389A CN110442325A CN 110442325 A CN110442325 A CN 110442325A CN 201910679389 A CN201910679389 A CN 201910679389A CN 110442325 A CN110442325 A CN 110442325A
Authority
CN
China
Prior art keywords
rendering
pond
component
nodejs
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
Application number
CN201910679389.XA
Other languages
English (en)
Inventor
周晶
吴峰
郭伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yidianshikong Network Co Ltd
Original Assignee
Shanghai Yidianshikong Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Yidianshikong Network Co Ltd filed Critical Shanghai Yidianshikong Network Co Ltd
Priority to CN201910679389.XA priority Critical patent/CN110442325A/zh
Publication of CN110442325A publication Critical patent/CN110442325A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本申请公开了一种基于nodejs渲染池的架构模型以及页面处理方法。该架构模型包括组件渲染池,用于在渲染池中选择合适的渲染进程,并根据组件渲染请求将组件渲染成HTML返回组件渲染结果至WEB网关;WEB网关,用于获取业务数据后根据HTTP请求将组件渲染请求发送至组件渲染池,并根据所述业务数据和所述组件渲染结果拼装得到HTML文档;客户端,用于向WEB网关发送HTTP请求,并接收返回的HTML文档并在浏览器显示。本申请解决了nodejs作为中间层的模型并发性能较差的技术问题。通过本申请能用于页面处理时能偶提供较高的并发性能和高度伸缩性。

Description

基于nodejs渲染池的架构模型以及页面处理方法
技术领域
本申请涉及WEB前端开发领域,具体而言,涉及一种基于nodejs渲染池的架构模型以及页面处理方法。
背景技术
在常规的基于组件SSR架构中,由于同构渲染的场景需求,必须依赖nodejs渲染技术作为中间层。
发明人发现,当遇到大量复杂组件以及高并发场景,nodejs渲染技术作为中间层的架构模型并发性能较差,无法适应相关页面处理技术场景的要求。
针对相关技术中nodejs作为中间层的模型并发性能较差的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种基于nodejs渲染池的架构模型以及页面处理方法,以解决相关技术中nodejs作为中间层的模型并发性能较差的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种基于nodejs渲染池的架构模型。
根据本申请的基于nodejs渲染池的架构模型包括:组件渲染池,用于在渲染池中选择合适的渲染进程,并根据组件渲染请求将组件渲染成HTML返回组件渲染结果至WEB网关,其中所述WEB网关是指WEB服务器;WEB网关,用于获取业务数据后根据HTTP请求将组件渲染请求发送至组件渲染池,并根据所述业务数据和所述组件渲染结果拼装得到HTML文档,其中所述HTML文档用于创建包含业务数据和渲染结果网页的标准标记语言;客户端,用于向WEB网关发送HTTP请求,并接收返回的HTML文档并在浏览器显示,其中所述HTTP使用统一资源标识符来传输数据和建立连接。
进一步地,在所述组件渲染池,用于基于集群技术按照如下构架进行构建:
每一个节点N作为一台负载实例;
对每一台负载实例利用nodejs的cluster模型生成多个worker进程。
进一步地,所述同一个负载实例上的所有worker进程具有共享端口。
进一步地,所述nodejs处理单一的渲染组件。
进一步地,在所述组件渲染池,用于根据组件渲染单位时间的请求密度和负载情况动态的从池中添加或删除负载实例。
为了实现上述目的,根据本申请的另一方面,提供了一种基于nodejs渲染池的架构模型的页面处理方法。
根据本申请的基于nodejs渲染池的架构模型的页面处理方法包括:接收HTTP请求;通过预先获取的业务数据和根据所述HTTP请求,向组件渲染池发送组件渲染请求;在组件渲染池根据所述组件渲染请求将组件渲染成HTML返回组件渲染结果;根据所述业务数据和所述组件渲染结果拼装得到HTML文档。
进一步地,所述组件渲染池中,被配置为根据组件渲染单位时间的请求密度和负载情况动态的从池中添加或删除负载实例。
进一步地,所述组件渲染池中,被配置为每一个节点N作为一台负载实例;
所述组件渲染池中,还被配置为对每一台负载实例利用nodejs的cluster模型生成多个worker进程。
进一步地,所述组件渲染池被配置为在同一个负载实例上的所有worker进程具有共享端口。
进一步地,所述组件渲染池中被配置为nodejs处理单一的渲染组件。
在本申请实施例中基于nodejs渲染池的架构模型以及页面处理方法,采用渲染池中的nodejs的方式,通过基于cluster的多进程模型,达到了高渲染性能的目的,从而实现了nodejs在架构模型中只负责渲染组件的技术效果,进而解决了nodejs作为中间层的模型并发性能较差的技术问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于nodejs渲染池的架构模型结构示意图;
图2是根据本申请实施例的基于nodejs渲染池的架构模型页面处理方法流程示意图;
图3是根据本申请实施例的基于nodejs渲染池的架构模型中的交互过程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,本申请实施例的基于nodejs渲染池的架构模型,包括:组件渲染池100,用于在渲染池中选择合适的渲染进程,并根据组件渲染请求将组件渲染成HTML返回组件渲染结果至WEB网关,其中所述WEB网关是指WEB服务器;WEB网关200,用于获取业务数据后根据HTTP请求将组件渲染请求发送至组件渲染池,并根据所述业务数据和所述组件渲染结果拼装得到HTML文档,其中所述HTML文档用于创建包含业务数据和渲染结果网页的标准标记语言;客户端300,用于向WEB网关发送HTTP请求,并接收返回的HTML文档并在浏览器显示,其中所述HTTP使用统一资源标识符来传输数据和建立连接。
具体地,如图3所示是交互流程示意图,所述客户端300向WEB网关200发送URL请求,所述WEB网关200获取业务数据,同时根据HTTP请求信息将组件渲染请求发送给所述组件渲染池100。所述组件渲染池100从池中取出合适的渲染进程将渲染过程中的组件渲染成HTML,同时将结果反馈给WEB网关200。所述WEB网关200根据业务数据和上述渲染结果拼装成最终的HTML文档,反馈给客户端300。
在所述组件渲染池100在渲染池中选择合适的渲染进程,并根据组件渲染请求将组件渲染成HTML返回组件渲染结果至WEB网关,其中所述WEB网关是指WEB服务器。
在所述WEB网关200获取业务数据后根据HTTP请求将组件渲染请求发送至组件渲染池,并根据所述业务数据和所述组件渲染结果拼装得到HTML文档,其中所述HTML文档用于创建包含业务数据和渲染结果网页的标准标记语言。
在所述客户端300向WEB网关发送HTTP请求,并接收返回的HTML文档并在浏览器显示,其中所述HTTP使用统一资源标识符来传输数据和建立连接。
从以上的描述中,可以看出,本申请实现了如下技术效果:
在本申请实施例中基于nodejs渲染池的架构模型以及页面处理方法,采用渲染池中的nodejs的方式,通过基于cluster的多进程模型,达到了高渲染性能的目的,从而实现了nodejs在架构模型中只负责渲染组件的技术效果,进而解决了nodejs作为中间层的模型并发性能较差的技术问题。
根据本申请实施例,作为本实施例中的优选,在所述组件渲染池,用于基于集群技术按照如下构架进行构建:
每一个节点N作为一台负载实例;
对每一台负载实例利用nodejs的cluster模型生成多个worker进程。
根据本申请实施例,作为本实施例中的优选,所述同一个负载实例上的所有worker进程具有共享端口。
具体地,组件渲染池利用集群技术,每一个节点N代表一台负载实例,每一台负载实例利用nodejs的cluster模型生成多个worker进程,同一个负载实例上的所有worker进程是共享端口的。
由于渲染池中的nodejs是基于cluster的多进程模型,完全摆脱了单线程限制,没有I/0阻塞的风险,可以实现极高的渲染性能。
根据本申请实施例,作为本实施例中的优选,所述nodejs处理单一的渲染组件。
由于nodejs在这个架构模式中只负责渲染组件,再也不用关注处理http请求,也不用关注和业务数据的交互,任务单一,降低了nodejs服务器技术的维护难度,节约了更多成本。
根据本申请实施例,作为本实施例中的优选,在所述组件渲染池,用于根据组件渲染单位时间的请求密度和负载情况动态的从池中添加或删除负载实例。
具体地,组件渲染池根据组件渲染单位时间的请求密度,根据负载情况动态的从池中添加或删除负载实例,实现高度伸缩性。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述架构模型的基于nodejs渲染池的架构模型的页面处理方法,用于组件渲染池100、WEB网关200以及客户端300,如图2所示,该方法包括:
步骤S102,接收HTTP请求;
步骤S104,通过预先获取的业务数据和根据所述HTTP请求,向组件渲染池发送组件渲染请求;
步骤S106,在组件渲染池根据所述组件渲染请求将组件渲染成HTML返回组件渲染结果;
步骤S108,根据所述业务数据和所述组件渲染结果拼装得到HTML文档。
具体地,所述客户端300向WEB网关200发送URL请求,所述WEB网关200获取业务数据,同时根据HTTP请求信息将组件渲染请求发送给所述组件渲染池100。所述组件渲染池100从池中取出合适的渲染进程将渲染过程中的组件渲染成HTML,同时将结果反馈给WEB网关200。所述WEB网关200根据业务数据和上述渲染结果拼装成最终的HTML文档,反馈给客户端300。
在所述组件渲染池100在渲染池中选择合适的渲染进程,并根据组件渲染请求将组件渲染成HTML返回组件渲染结果至WEB网关,其中所述WEB网关是指WEB服务器。
在所述WEB网关200获取业务数据后根据HTTP请求将组件渲染请求发送至组件渲染池,并根据所述业务数据和所述组件渲染结果拼装得到HTML文档,其中所述HTML文档用于创建包含业务数据和渲染结果网页的标准标记语言。
在所述客户端300向WEB网关发送HTTP请求,并接收返回的HTML文档并在浏览器显示,其中所述HTTP使用统一资源标识符来传输数据和建立连接。
根据本申请实施例,作为本实施例中的优选,所述组件渲染池中,被配置为根据组件渲染单位时间的请求密度和负载情况动态的从池中添加或删除负载实例。
具体地,组件渲染池利用集群技术,每一个节点N代表一台负载实例,每一台负载实例利用nodejs的cluster模型生成多个worker进程,同一个负载实例上的所有worker进程是共享端口的。
由于渲染池中的nodejs是基于cluster的多进程模型,完全摆脱了单线程限制,没有I/0阻塞的风险,可以实现极高的渲染性能。
根据本申请实施例,作为本实施例中的优选,所述组件渲染池中,被配置为每一个节点N作为一台负载实例;
所述组件渲染池中,还被配置为对每一台负载实例利用nodejs的cluster模型生成多个worker进程。
根据本申请实施例,作为本实施例中的优选,所述组件渲染池被配置为在同一个负载实例上的所有worker进程具有共享端口。
具体地,组件渲染池利用集群技术,每一个节点N代表一台负载实例,每一台负载实例利用nodejs的cluster模型生成多个worker进程,同一个负载实例上的所有worker进程是共享端口的。
由于渲染池中的nodejs是基于cluster的多进程模型,完全摆脱了单线程限制,没有I/0阻塞的风险,可以实现极高的渲染性能。
根据本申请实施例,作为本实施例中的优选,所述组件渲染池中被配置为nodejs处理单一的渲染组件。
由于nodejs在这个架构模式中只负责渲染组件,再也不用关注处理http请求,也不用关注和业务数据的交互,任务单一,降低了nodejs服务器技术的维护难度,节约了更多成本。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种基于nodejs渲染池的架构模型,其特征在于,包括:
组件渲染池,用于在渲染池中选择合适的渲染进程,并根据组件渲染请求将组件渲染成HTML返回组件渲染结果至WEB网关,其中所述WEB网关是指WEB服务器;
WEB网关,用于获取业务数据后根据HTTP请求将组件渲染请求发送至组件渲染池,并根据所述业务数据和所述组件渲染结果拼装得到HTML文档,其中所述HTML文档用于创建包含业务数据和渲染结果网页的标准标记语言;
客户端,用于向WEB网关发送HTTP请求,并接收返回的HTML文档并在浏览器显示,其中所述HTTP使用统一资源标识符来传输数据和建立连接。
2.根据权利要求1所述的基于nodejs渲染池的架构模型,其特征在于,在所述组件渲染池,用于基于集群技术按照如下构架进行构建:
每一个节点N作为一台负载实例;
对每一台负载实例利用nodejs的cluster模型生成多个worker进程。
3.根据权利要求2所述的基于nodejs渲染池的架构模型,其特征在于,所述同一个负载实例上的所有worker进程具有共享端口。
4.根据权利要求2所述的基于nodejs渲染池的架构模型,其特征在于,所述nodejs处理单一的渲染组件。
5.根据权利要求1所述的基于nodejs渲染池的架构模型,其特征在于,在所述组件渲染池,用于根据组件渲染单位时间的请求密度和负载情况动态的从池中添加或删除负载实例。
6.一种基于nodejs渲染池的架构模型的页面处理方法,其特征在于,包括:
接收HTTP请求;
通过预先获取的业务数据和根据所述HTTP请求,向组件渲染池发送组件渲染请求;
在组件渲染池根据所述组件渲染请求将组件渲染成HTML返回组件渲染结果;
根据所述业务数据和所述组件渲染结果拼装得到HTML文档。
7.根据权利要求6所述的基于nodejs渲染池的架构模型的页面处理方法,其特征在于,所述组件渲染池中,被配置为根据组件渲染单位时间的请求密度和负载情况动态的从池中添加或删除负载实例。
8.根据权利要求6所述的基于nodejs渲染池的架构模型的页面处理方法,其特征在于,所述组件渲染池中,被配置为每一个节点N作为一台负载实例;
所述组件渲染池中,还被配置为对每一台负载实例利用nodejs的cluster模型生成多个worker进程。
9.根据权利要求6所述的基于nodejs渲染池的架构模型的页面处理方法,其特征在于,所述组件渲染池被配置为在同一个负载实例上的所有worker进程具有共享端口。
10.根据权利要求6所述的基于nodejs渲染池的架构模型的页面处理方法,其特征在于,所述组件渲染池中被配置为nodejs处理单一的渲染组件。
CN201910679389.XA 2019-07-24 2019-07-24 基于nodejs渲染池的架构模型以及页面处理方法 Pending CN110442325A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910679389.XA CN110442325A (zh) 2019-07-24 2019-07-24 基于nodejs渲染池的架构模型以及页面处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910679389.XA CN110442325A (zh) 2019-07-24 2019-07-24 基于nodejs渲染池的架构模型以及页面处理方法

Publications (1)

Publication Number Publication Date
CN110442325A true CN110442325A (zh) 2019-11-12

Family

ID=68431575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910679389.XA Pending CN110442325A (zh) 2019-07-24 2019-07-24 基于nodejs渲染池的架构模型以及页面处理方法

Country Status (1)

Country Link
CN (1) CN110442325A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191168A (zh) * 2019-12-25 2020-05-22 北京永洪商智科技有限公司 一种基于ssr的bi可视化展示性能优化方法
CN113779456A (zh) * 2021-03-25 2021-12-10 北京沃东天骏信息技术有限公司 一种页面加载方法和用于页面加载的客户端、服务端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100164A1 (en) * 2007-10-16 2009-04-16 Samsung Electronics Co., Ltd. Apparatus and method for providing content
CN103970534A (zh) * 2014-04-15 2014-08-06 百度在线网络技术(北京)有限公司 一种提供移动应用中的渲染页面的方法与设备
CN108038241A (zh) * 2018-03-01 2018-05-15 上海品顺信息科技有限公司 集成web可视化工作流方法、装置、可读存储介质及系统
CN109324788A (zh) * 2018-09-05 2019-02-12 湖南华诺科技有限公司 一种基于React和Nodejs的服务端渲染方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100164A1 (en) * 2007-10-16 2009-04-16 Samsung Electronics Co., Ltd. Apparatus and method for providing content
CN103970534A (zh) * 2014-04-15 2014-08-06 百度在线网络技术(北京)有限公司 一种提供移动应用中的渲染页面的方法与设备
CN108038241A (zh) * 2018-03-01 2018-05-15 上海品顺信息科技有限公司 集成web可视化工作流方法、装置、可读存储介质及系统
CN109324788A (zh) * 2018-09-05 2019-02-12 湖南华诺科技有限公司 一种基于React和Nodejs的服务端渲染方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191168A (zh) * 2019-12-25 2020-05-22 北京永洪商智科技有限公司 一种基于ssr的bi可视化展示性能优化方法
CN113779456A (zh) * 2021-03-25 2021-12-10 北京沃东天骏信息技术有限公司 一种页面加载方法和用于页面加载的客户端、服务端

Similar Documents

Publication Publication Date Title
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69723612T2 (de) Datenbanknetzwerk
CN103186834A (zh) 业务流程配置方法和装置
CN101808051B (zh) 应用整合网关及其控制方法
CN106055716A (zh) 网站自动生成方法和设备
DE112011103172T5 (de) Unterstützung des transaktionsorientierten Nachrichtenaustauschs in verbundenen Nachrichtenaustauschnetzwerken
CN109254854A (zh) 异步调用方法、计算机装置及存储介质
US20140195510A1 (en) Partitioning a search space for distributed crawling
CN110442325A (zh) 基于nodejs渲染池的架构模型以及页面处理方法
DE10296648T5 (de) Methode für die Integration der elektronischen Post und der Web-Kommunikationen mit einem Benutzer
CN104468830A (zh) 一种基于物联网的web服务方法及物联网系统
CN110995545A (zh) 云网络配置测试方法及装置
CN102456004A (zh) 一种页面数据查询控制方法及系统
CN107958052A (zh) 一种大规模网络爬虫程序的访问方法及装置
CN103561113B (zh) Web Service接口的生成方法及装置
CN103186405B (zh) 一种实现设备的统一控制方法和装置
CN109656670A (zh) 一种页面渲染方法及装置
CN107896242A (zh) 一种服务共享方法及装置
CN110598146B (zh) 基于Reactjs的SPA应用程序实现方法以及装置
CN106202470A (zh) 脚本的处理方法及系统
CN109299241A (zh) 聊天机器人的知识库生成方法及装置
CN105338104A (zh) 业务请求响应方法、解析方法和系统
CN116048517A (zh) 基于b/s架构应用系统的api接口生成方法、系统和装置
US20100077030A1 (en) Method of representing subscribe relation in design process using relations among components

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191112

RJ01 Rejection of invention patent application after publication