微服务(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.一句话总结
微服务就是:把一个大系统拆成多个小服务,通过网络协作完成整体功能。