对于一个无状态的web应用,比如运行在Unicorn上的Rails,零停机升级的说明很容易在Google上找到。
但是,升级具有websocket连接的nodejs web应用程序的最佳实践是什么?这些websocket连接如何在不中断的情况下进行?
在不同的端口上部署新代码,然后将原始端口转发到这个新实例。在会话结束之前,旧连接仍将连接到您的旧应用程序,并且所有新连接将使用新实例进行。
当您满意所有用户都使用新代码库时,您可以关闭旧进程。