Skip to content

Node.js 微服务

微服务是一种架构风格,将应用拆分为多个独立部署的小服务,每个服务专注单一职责。

微服务 vs 单体架构

单体架构微服务
部署整包部署独立部署
扩展整体扩缩按需扩某个服务
技术栈统一每个服务可不同
故障影响整体不可用局部故障隔离
团队单团队多团队独立开发

微服务通信方式

方式适用场景
HTTP REST同步请求/响应
gRPC高性能服务间调用
消息队列 (RabbitMQ/Kafka)异步解耦
TCP/UDP低层通信

服务发现

user-service (3001)  ──┐
order-service (3002) ──┼── 注册中心(Consul/Etcd/Nacos)
pay-service (3003)    ──┘

                     网关层 → 查询注册中心 → 动态路由

简单拆分示例

sh
# 项目结构
├── gateway/          # 网关(入口+路由)
├── user-service/     # 用户服务
├── order-service/    # 订单服务
├── pay-service/      # 支付服务
└── shared/           # 公共模块(DTO/工具)

相关技术栈回顾

模块技术
网关层Fastify + http-proxy
服务通信HTTP / gRPC / socket.io
数据库每服务独立数据库(mysql2/prisma)
缓存Redis(ioredis)
认证JWT 统一认证
消息队列RabbitMQ / Kafka