我正在考虑使用 php 构建一个站点,但是如果在 node.js 中制作,它的几个方面的性能会好得多。同时,网站的大部分内容需要保留在 PHP 中。这是因为许多功能已经在 PHP 中开发,重新开发、测试等工作量太大,坦率地说,网站的这些部分在 PHP 中运行得非常好。
我正在考虑重建 node.js 中最受益于在 node.js 中运行的部分,然后让 PHP 使用 Gearman 将请求传递给 node.js。通过这种方式,我通过启动更多工作人员进行横向扩展,并让 Gearman 处理负载分配。
我们的网站流量很大,我担心 gearman 是否能处理这种负载。我不想让这个问题保持高效,所以让我们主要关注以下可解决的问题:
- 假设我们有内存,gearman 能否处理我们所有的预期负载(一次可能有大约 3000 多个排队的作业,每秒处理数千个)?
- 如果我只是使用 CURL 将请求传递给 node.js,这会运行得更好吗?如果是这样,node.js 是否提供任何方法来将负载分配到给定脚本的多个实例上?
- 可以以没有单点故障的方式配置 gearman 吗?
- 你们在开发和扩展方面可以看到哪些问题?
我正在解决这些广泛的问题,因此查看这篇文章的任何人都可以在一个地方收集关于相互强烈影响的事项的广泛信息。
当然,我会测试所有这些,但我想在可能进行类似的事情之前收集尽可能多的信息。
编辑:我使用 gearman 的一个重要原因不是因为它的非阻塞结构,而是因为它的绝对速度。