【发布时间】:2021-12-22 22:34:21
【问题描述】:
由于一些问题,例如 SSR、SSG 和 CSR 并列,我决定使用 express js 为 React js 创建自己的 SSR,我正在使用 redux 和 saga,并且我有几个 API 调用来生成渲染之前的数据。 所以我不得不在我的服务器端渲染器中使用几个 Promise,比如等待 redux 完成所有 API,或者等待样式和脚本,我也在使用 react-ssr-prepass 并且它浏览我的所有组件(对于调度 SSR 中所需的操作)。 所以我的项目中有很多线程阻塞的东西。
为了处理并发,我开始使用node-cluster,所以我的服务器上有几个节点,它会增加并发能力,但这不是最好的解决方案,因为在重负载下,即使节点集群也不会能够响应所有请求。
所以我开始考虑 node js 中的工作线程或子进程,所以我在每个请求上创建一个服务器端渲染器的实例并在后台执行所有操作,因此并发请求不会等待彼此完成。
但问题在于子进程或工作线程我不能使用“导入”,因为它是 es6
所以我有两个问题
首先,有没有办法在子进程中使用es6? (我试过 babel-esm-plugin 但它不支持 webpack 5)
其次,有没有比使用子进程的工作线程来增加并发能力更好的办法?
【问题讨论】:
标签: node.js reactjs express ecmascript-6 server-side-rendering