微服务最大的特点就是独立部署,独立部署便于对单个服务的开发、测试和上线到环境中去,独立管理便于扩展和替换。
单块应用的整个系统的更新周期是被绑定在一起的,对应用的一小部分进行更改,就需要整个系统的重新构建和部署。
微服务不需要知道自己业务的上下游,业务上下游的变化(此处变化指不会导致服务提供的接口产生变更)并不会影响自身的功能,避免串联协作。
不能为了微服务而微服务,微服务的架构的设计应该能解决实际的痛点。
微服务架构的好处
1.组件化
2.弹性架构
3.去中心化
4.快速响应
MartingFlower提出单体应用优先原则,从单体架构开始,通过演进式设计逐渐重构到微服务架构。
微服务也不是完美的,在解决痛点的同时,微服务本身也是有一些问题需要解决的:
1 微服务的边界的确定(小,且专注于做一件事是边界划分一个不错的原则)
2 接口变更
3 一致性问题,微服务的架构变成了分布式,分式式中的数据一致性问题也需要被考虑