Node 服务端系统架构设计基本思想及常见场景解决方案

本文探讨了Node.js服务端系统架构设计的基本思想,包括集群、单点故障解决、高可用、平滑发布、负载均衡、持久化存储、缓存、分布式缓存、消息队列和长连接等关键概念。通过实例解析了如何应对各种场景,如使用集群提高业务处理能力,通过分布式缓存实现数据一致性,利用负载均衡器分发请求,以及在实际项目中进行前端服务的分布式改造和多节点部署。文章还强调了基础技术如数据库、缓存、消息队列在高并发场景中的重要性,并提供了学习资料和面试指导。
摘要由CSDN通过智能技术生成
什么是集群?

刚说到的分布式中,应用和数据库显然在系统中提供着不同的功能,而当我们部署多个相同的应用节点时,这些应用节点就形成了一个应用集群,可见集群就是系统中多个提供相同功能的节点形成的一个整体

典型场景

在集群的概念中其实已经提到了一个典型场景,就是我们在部署node应用时,尤其是在生产环境,一般会部署至少两个以上的应用节点,来提供更强的业务处理能力,同时减少因部分节点宕机对系统整体造成的影响,这样就形成了一个应用集群

架构图

单点故障、高可用


单点故障

什么是单点故障

所谓单点,也就是系统内某个服务只有一个节点,比如我们的node应用,此时如果程序崩溃或服务器宕机,则系统整体对外表现为不可用,于是形成了单点故障

解决方案

同一服务在多个机器部署多个节点,此时一台机器或一个服务出现问题,系统整体对外表现仍可用,所以前面提到的应用服务器集群已经就可以解决这个问题

高可用
什么是高可用

系统可以持久的保持对外正常的服务

解决方案

前面的单点故障其实就是导致系统无法实现高可用的一个典型问题,所以部署多个应用节点形成集群仍然是系统实现高可用的一种基本解决方案

平滑发布


什么是平滑发布

node服务发布时往往需要停止服务,再以新的代码重新启动服务,在此期间如果系统仍可以保持对外的正常服务,则称为平滑发布

解决方案

当系统存在多个应用节点时,实际上已经具备了平滑发布的基本条件,如系统已部署两个应用节点A、B,则只需要在发布时先停止节点A的服务,发布A节点,等A节点发布结束再同理发布B节点即可

负载均衡


什么是负载均衡

如前文提到的,假设系统中应用节点已部署了多个,则客户端请求需要由一个服务根据某种策略来向各应用节点进行请求分发,让多个节点都能对外提供服务,此时客户端请求对系统来说称为负载,而所谓均衡,即使用某种分发策略以达到让多个节点都能相对均匀的分配到客户端请求

解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值