📚 微服务架构超详细笔记
关键词:微服务
、架构演进
、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 |
🎉 觉得有用记得点赞收藏!评论区一起交流微服务踩坑经验~