首页 > 解决方案 > 优雅关闭 Websocket NodeJs

问题描述

我正在编写一个小型 websocket 服务器,现在我想优雅地关闭该服务。我希望在关闭之前处理所有活动连接,直到它们准备好。

我正在使用 NodeJs 和 wss 来处理 websocket 连接

任何人的想法?


标签: javascriptnode.jswebsocketbackend

解决方案


我会用:

  • traefik 做负载均衡
  • docker swarm / kubernetes 来处理项目的部署和滚动更新
  • 有一个写得很好的nodejs代码。

我不知道特别是 wss,但这个概念是当人们要求工作时增加服务器上的工作计数,并在服务器响应时减少它。然后您可以放心地在计数达到 0 时立即退出服务器。

当您想关闭服务器时,只需停止接受连接(和工作)并在计数达到零时立即退出服务器。

负载均衡器需要在开始停止之前停止将请求路由到要停止的节点。您可以为此使用健康检查。

当您完美配置零停机时间并且您拥有完美的网络时,您不需要执行以下操作,但我还会在客户端添加“失败重试”。


推荐阅读