javascript - 优雅关闭 Websocket NodeJs
问题描述
我正在编写一个小型 websocket 服务器,现在我想优雅地关闭该服务。我希望在关闭之前处理所有活动连接,直到它们准备好。
我正在使用 NodeJs 和 wss 来处理 websocket 连接
任何人的想法?
解决方案
我会用:
- traefik 做负载均衡
- docker swarm / kubernetes 来处理项目的部署和滚动更新
- 有一个写得很好的nodejs代码。
我不知道特别是 wss,但这个概念是当人们要求工作时增加服务器上的工作计数,并在服务器响应时减少它。然后您可以放心地在计数达到 0 时立即退出服务器。
当您想关闭服务器时,只需停止接受连接(和工作)并在计数达到零时立即退出服务器。
负载均衡器需要在开始停止之前停止将请求路由到要停止的节点。您可以为此使用健康检查。
当您完美配置零停机时间并且您拥有完美的网络时,您不需要执行以下操作,但我还会在客户端添加“失败重试”。
推荐阅读
- python - Tensorflow:继续用更多数据训练图(.pb)
- php - 当我尝试以编程方式插入自定义属性时出了什么问题?
- c - '等待'系统调用上的 EINTR
- phpbb - phpbb 3.2.5 用户权限/组成员身份的更改日志/时间戳
- django - DJango - 将模型中的 Json 字段与其他字段一起导出为 CSV
- c - Ruby C API 宏,例如 INT2NUM() 返回/存储与预期不同的数字
- iot - 节点红色无法监听 http://127.0.0.1:1880
- python - DjangoCMS add childplugin button
- c - 合并排序程序不对超过 5 个元素的数组进行排序
- java - 尝试使用不同的远程数据源。失败 - jndi 解决异常