本文属于个人认知笔记,摘自IBM技术开源文章
为什么需要微服务
- 应用需求随时间推进的不断增加,整体式应用适应就会越来越难。
- SOA无法应对快速的变化。
- 虚拟技术发展,简化了基础设备。
- PaaS的发展,使微服务框架可以更好的发挥价值。
什么是微服务
- 团队层面:更小,更全栈,更注重持续交付(DevOps)。
- 去中心化,各个应用可使用不同的编程语言和数据持久化工具,合适的工具做合适的事情。
- 必须注意故障处理和容错机制(服务粒度小带来的后果之一就是通信和管道的增多,如果不处理好故障和容错机制,会带来严重后果)。
- 演进式设计:在项目的演进过程中,对服务的划分会逐渐发生变化。可能一分为二,也可能合二为一。
什么系统需要微服务
- 记录型系统
- 交互性系统
- 分析型系统 不建议
微服务的优点
- 服务专注,简单
- 松耦合,灵活
- 平台开放,可以选择不同工具
- 不同团队独立开发,上线快。
- 持续交付能力
微服务的缺点
- 运维开发成本高
- 需要团队有坚实的DevOps开发一体化技能
- 隐式接口及接口匹配功能繁琐
- 代码重复
- 分布式系统的复杂性
- 异步机制
- 可测性挑战