gpt4 book ai didi

node.js - 将 Nodejs 服务器扩展到多个系统?

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:26 29 4
gpt4 key购买 nike

我想使用 express 在 nodejs 中构建聊天服务器。我已经使用集群模块在多核之间扩展服务器,但如何扩展到不同的系统?

最佳答案

由于 Node.js 不支持共享内存,因此在多台机器上分布 Node.js 进程提供了与使用集群在多个内核上分布进程相同的体验——如果您的应用程序可以在单个系统中作为多个独立进程运行,那么它也可以作为多个独立的进程分布在多个系统中运行。

太好了,这样就少了一件需要担心的事情!现在,有许多基础架构解决方案可以抽象出在多个系统上运行的集群,但您的应用程序不会注意到您可能选择的任何一个。

不过,在您的应用程序和任何单个进程的范围内,您会关心的是发现外部服务、跨基础架构与进程通信以及与集群内的进程通信。同样,有许多解决方案可以减少您的应用程序需要满足的任何特定要求。

到目前为止,Node.js 社区偏爱简单的方法,这些方法高度专门用于解决特定问题,然后让路。例如:

  • Web 套接字客户端和服务器:集群内的低延迟;当您只需发送一些数据并继续您的生活时,它也适用于整个网络,但如果您需要同步进程,例如发送一些数据,等待和空闲直到最终结果,它会使事情变得缓慢回来
  • Redis : 集群易于设置,实例自行处理发现,足够的原子操作提供了一种在不同实例之间共享数据的可靠方法,发布-订阅支持提供了低延迟 IPC
  • ZMQ : 因其智能、高可用性连接而受到称赞,您可以使用几十行代码设计任何消息传递协议(protocol),下一个维护您的应用程序的人将能够推理
  • etcd :分布式、一致的键值存储;低基础设施开销,允许在顶部实现直接的服务发现,这将与现有的每个基础设施解决方案很好地集成
  • Consul : 基于 serf与 etcd 一样,但非常固执己见,它提供了类固醇的服务发现以及许多额外的细节;如果您喜欢自己管理事情并有时间预先投资,我衷心建议您进一步调查

虽然这当然没有涵盖所有可用的选项,但它应该足以让您朝着正确的方向前进。仅凭这些简单得令人难以置信的简单构建 block ,您应该能够将您的应用程序分布在多个系统中,在多个数据中心的多台机器上运行。

关于node.js - 将 Nodejs 服务器扩展到多个系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835708/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com