我正在将 nodejs 用于 Web 服务器,它解码 GET 参数并以某种编码格式返回数据。解码/编码是使用 nodejs 的 crypto 模块完成的,这似乎是同步的。虽然服务单个请求所花费的时间足够快,但阻塞事件循环使服务在并发性方面表现不佳。
我的要求很简单,在事件循环之外进行编码/解码功能。
- 独立进程(child_process 或集群)
这可以是仅用于此目的的单独进程,但由于编码/解码将在子进程中阻塞,这将阻止子进程接收新消息,即永远不会出现将两个字符串编码为子进程的情况也将是单线程的。
- 每个请求的单独线程(threads-a-gogo 或 Fiber 或 node-webworker)
为每个请求创建一个单独的线程来执行编码/解码操作,但似乎没有一个模块按预期工作,即threads-a-gogo没有通过npm安装,fiber没有在运行时创建一个单独的线程(), node-webworker不工作。
是否有人遇到过类似的问题,或者是否有某种方法可以通过简单的消息传递轻松地在 nodejs 中创建线程。