微服务架构概述

发布于:2025-08-15 ⋅ 阅读:(15) ⋅ 点赞:(0)

📚 微服务架构超详细笔记

关键词:微服务架构演进Spring Cloud淘宝分布式


🌱 一、什么是微服务架构?

1.1 起源与发展

  • 2012年,Fred George 首次提出“Micro Services Architecture”概念。
  • 2014年,Martin Fowler 发表经典文章,正式定义微服务架构:
    • 将单体应用拆分为多个小型服务
    • 服务间采用轻量级通信(RESTful API)
    • 每个服务独立开发、部署、扩展
    • 可使用不同语言和数据存储技术

1.2 与单体架构对比

特性 单体架构 微服务架构
部署 整体部署 独立部署
技术栈 统一 多样化
扩展性 垂直扩展 水平扩展
故障影响 全局 局部

🚀 二、为什么要使用微服务架构?

2.1 架构演进之路(以淘宝为例)

单机架构
Tomcat与数据库分离
引入缓存
负载均衡
读写分离
业务分库
分表
多Nginx负载均衡
DNS轮询
引入NoSQL与搜索引擎
大应用拆小应用
功能抽离成微服务

2.2 演进原因总结

原因 说明
📈 业务规模增长 单体无法支撑复杂业务
🏃 敏捷开发需求 快速迭代,降低沟通成本
👥 技术团队完善 各角色团队齐备
🧩 生态成熟 Spring Cloud 等框架成熟

✨ 三、微服务架构的优点

优点 说明
🔧 易于开发与维护 服务职责单一,代码量少
🏎️ 快速迭代 独立部署,灵活扩展
📊 伸缩性强 按需分配资源
🌐 技术选型灵活 语言、数据库自由选择
🛡️ 错误隔离 局部故障不影响全局

⚠️ 四、微服务架构的缺点

缺点 说明
🧩 落地复杂 需要完整生态支撑
🔗 调用链复杂 服务依赖多,排查困难
🔄 数据一致性难 分布式事务问题
🔍 问题排查难 链路长,定位慢
📚 学习成本高 涉及技术栈多

🧭 五、什么时候使用微服务架构?

✅ 适合场景

  • 业务量大,需频繁迭代
  • 技术团队人员充足(架构、运维、测试等)
  • 系统已用尽优化手段(缓存、分库分表等)

❌ 不适合场景

  • 业务量小,团队规模小
  • 仅为“追潮流”而上微服务

📌 六、总结与建议

🎯 微服务不是银弹,适合的才是最好的!

  • 先做好单体优化,再考虑拆分
  • 团队能力 > 技术选型
  • 推荐技术栈:Spring Cloud Alibaba + Nacos + Sentinel + RocketMQ

📎 附录:相关资源推荐

类型 名称 链接
框架 Spring Cloud Alibaba https://github.com/alibaba/spring-cloud-alibaba
注册中心 Nacos https://nacos.io
限流熔断 Sentinel https://sentinelguard.io
消息队列 RocketMQ https://rocketmq.apache.org

🎉 觉得有用记得点赞收藏!评论区一起交流微服务踩坑经验~


网站公告

今日签到

点亮在社区的每一天
去签到