【问题标题】:Graceful shutdown Websocket NodeJs优雅关闭 Websocket NodeJs
【发布时间】:2021-06-18 20:32:42
【问题描述】:

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

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

谁有想法?


【问题讨论】:

  • 我真的不明白,你有什么问题?
  • npmjs.com/package/wss 3 岁。尽可能考虑更新到另一个维护的库。
  • 如何在终止 nodejs 后端服务时优雅地关闭 wss websocket 连接?因此,当使用新版本更新服务时,我想确保所有连接都得到处理,直到它们关闭连接。
  • 您所说的优雅关机与套接字优化有关吗?还是允许零停机?我需要你的用例样本来回答任何问题

标签: javascript node.js websocket backend


【解决方案1】:

我会使用:

  • traefik 做负载均衡
  • docker swarm / kubernetes 处理项目的部署和滚动更新
  • 拥有编写良好的 nodejs 代码。

我不太了解 wss,但这个概念是在人们要求工作时增加服务器上的工作计数,并在服务器响应时减少它。 那么您可以放心地在计数达到 0 时立即退出服务器。

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

负载均衡器需要先停止将请求路由到要停止的节点,然后再开始停止它。您可以为此使用健康检查。

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

【讨论】:

    猜你喜欢
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2014-02-05
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多