1
1
这听起来很像微服务架构。虽然js中有构建微服务的框架,例如 moleculer 许多微服务实现与语言无关。事实上,作为微服务领域最古老的成功案例之一,亚马逊网站并没有使用单一的编程语言或平台。 It is a mix of multiple servers in PHP, Java, Perl and even some C++ . 微服务架构的核心是HTTP反向代理前端。这可以是Apache2或Nginx,也可以是更专业的东西,比如 HAProxy 当Web服务器被配置为以这种方式代理微服务时,它们通常被称为“应用网关”。 传统上,该架构采用前端模板呈现器(例如,一个简单的PHP网站),从其他可以用任何语言编写的服务中获取数据:
随着CORS的出现,Facebook等服务越来越多地将大量后端服务直接暴露在网页上:
为了实现这一点,网页和服务之间的通信仅限于HTTP和Websocket,因此后端服务需要是HTTP服务(REST/json RPC/SOAP等)。 服务监控和重启通常使用专用的服务监控和重新启动机制完成。对于node.js,一个流行的崩溃检测和重启软件是 PM2 或 forever 然而,还有其他通用软件可用于此,例如 monit 事实上,并没有要求所有服务都使用相同的重启系统(例如,亚马逊允许每个功能由不同的团队开发,并按照团队认为合适的方式部署)。 如果你仔细设计你的会话系统(粘性会话、JWT令牌等),你可以通过运行更多的服务器来扩展后端。例如,如果聊天占用大量资源,只需运行3或4个聊天服务器,而只运行一个前端服务器。 |
2
1
它们有很多,只是不是Node。JS简单程序。也就是说,队列需要一些高性能的持久性,这可能涉及另一个进程。 单独的耦合是有意义的,但您需要持久的消息传递架构——这在较大的系统中大约40年左右是完全标准的。 我建议你考虑一下你想在哪个平台上运行,然后做一些R&D也符合现场规则的要求。在这种情况下,你的平台选择太简单了,没有意义。消息传递是必须的(这样你就可以在电子邮件服务关闭时对电子邮件进行排队)。 |
Josh · 使用比特币RPC和API填充PostgreSQL数据库 7 年前 |
Dmitry Poroh · 分布式Erlang:多呼叫超过请求的超时 7 年前 |
clo_jur · 具有protobuf文件的grpc的典型组织 7 年前 |
Rafael · Web Api始终接受控制器方法上的POST谓词 7 年前 |
Almas Abdrazak · RPC模式问题 7 年前 |