微服务(Microservices)软件架构风格介绍

微服务(Microservices)是一种软件架构风格,它把一个大型应用拆分成多个小而独立的服务,每个服务只负责一个具体功能,并且可以独立开发、部署和运行。

一句话解释:

  • 以前:一个“大一统系统”(单体应用)
  • 现在:拆成很多“各司其职的小服务”

1.核心特点

1.1服务拆分

每个微服务只做一件事,比如:

  • 用户服务(User Service)
  • 订单服务(Order Service)
  • 支付服务(Payment Service)

1.2独立部署

每个服务可以单独上线,不影响其他服务。


1.3技术独立

不同服务可以用不同技术:

  • 用户服务:Java
  • 推荐服务:Python
  • 网关:Node.js

1.4通过接口通信

服务之间通过网络调用:

  • HTTP(REST API)
  • gRPC
  • 消息队列(Kafka / RabbitMQ)

2.微服务 vs 单体架构

对比项 单体架构 微服务架构
部署 一起部署 可独立部署
开发 耦合高 解耦
扩展 整体扩展 按需扩展
复杂度

3.微服务典型架构组件

一个完整微服务系统通常包括:

  • API网关(统一入口)
  • 服务注册与发现(如 Nacos、Eureka)
  • 配置中心
  • 负载均衡
  • 熔断/限流(如 Sentinel)
  • 日志与监控
  • 消息队列

3.1优点

✔ 易扩展(按服务扩)
✔ 易维护(小团队负责小服务)
✔ 技术灵活
✔ 高可用(某个服务挂了不影响全部)


3.2缺点

❗ 系统复杂度高
❗ 分布式问题(事务、一致性)
❗ 运维成本增加
❗ 调试困难


4.适用场景

适合:

  • 大型系统(电商、金融、SaaS平台)
  • 团队规模较大
  • 业务复杂且持续演进

不适合:

  • 小项目 / 初创阶段
  • 团队经验不足

5.一句话总结

微服务就是:把一个大系统拆成多个小服务,通过网络协作完成整体功能。