文章目錄

Node服务高并发之PM2使用中,我们介绍了如何使用PM2将单台机器上Node服务性能最大化,这一篇我们讲一讲当单台机器的QPS无法满足需求时,如何解决。

其中一个解决办法是提高单台机器的CPU核数,比如之前是2核(即2C)的,提高到4核,再不够提高到8核,再不够继续提高。虽然这也能解决问题,但这意味着这个服务是单点的,假设服务器宕机了,服务就挂了。

这里我更赞成使用多台服务器,比如原先单台需要32核服务器,我们可以分成申请8台4核服务器。这样当其中一台服务器宕机了,还能有7台服务器提供服务。这里我提一句,有道友申请4C/8G的服务器用来做Node服务,大可不必,一般Node token生成服务都是CPU密集型,内存占用不会太多,有这个钱还不如申请两台4C/4G的服务器。

现在我们就需要涉及到如何讲代码发布到这多台服务器中,其中一个办法先到每台服务器上安装需要的Node环境,然后再上传代码。另一个更好办法是容器化,例如使用Docker技术,将需要的Node环境和代码一起打包到镜像中,然后把镜像上传到服务器中。

既然涉及到多台服务器,就得加上负载均衡,让请求均匀分发到各台服务器上。简单点就用Nginx做负载均衡,还有一些更复杂的API网关如Envoy, APISIX等等。

具体如何使用我也没有深入了解,毕竟公司有现成的一套容器化和API网关,还有动态迁移(容器所在的物理机宕机时,在其它物理机重新启动一个新容器提供服务),动态库容(CPU负载过高时,扩容)等功能,直接用就完事, 美滋滋了。

打赏作者

文章目錄