📚 微服务架构超详细笔记
关键词:微服务
、架构演进
、Spring Cloud
、淘宝
、分布式
🌱 一、什么是微服务架构?
1.1 起源与发展
- 2012年,Fred George 首次提出“Micro Services Architecture”概念。
- 2014年,Martin Fowler 发表经典文章,正式定义微服务架构:
- 将单体应用拆分为多个小型服务
- 服务间采用轻量级通信(RESTful API)
- 每个服务独立开发、部署、扩展
- 可使用不同语言和数据存储技术
1.2 与单体架构对比
特性 |
单体架构 |
微服务架构 |
部署 |
整体部署 |
独立部署 |
技术栈 |
统一 |
多样化 |
扩展性 |
垂直扩展 |
水平扩展 |
故障影响 |
全局 |
局部 |
🚀 二、为什么要使用微服务架构?
2.1 架构演进之路(以淘宝为例)
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 |
🎉 觉得有用记得点赞收藏!评论区一起交流微服务踩坑经验~