- 现在微服务非常火爆,很多互联网项目向微服务转移,首先总结一下微服务优点
- 单体服务存在性能问题,比如某一个单体服务需要支持几十万的访问量
- 服务故障隔离,保证高可用,为什么这样说,举个例子:比如系统使用阿里云oss存储,由于续费等问题要更改,头像那个服务突然挂掉,使用微服务,其他服务正常使用,仅仅修改头像服务挂掉对系统访问使用并无太大影响。这就保证了系统高可用。
- 微服务也存在缺点
- 增加整个解决方案的复杂度
需要整合系统服务与服务的接口,首先接口就需要进行规范的定义,其次还需要在服务数据达成一致,并且还需要定义其他非功能性的需求 - 数据一致性问题
原来保存在一处就可以,现在有服务调用数据会保存在多个地方,数据一致性如何保障 - 网络延迟服务调用存在延时
- 开发复杂度提高
书写接口文档增加沟通成本
重复劳动变多
总结一下方便记忆理解
为什么要使用微服务也就是优点:
1.解决单体服务性能问题
2.服务故障隔离,也就是降低耦合性。
缺点:
1.系统复杂度增加
2.数据一致性问题
3.网络延迟
4.开发复杂度增加
所以使用单体还是微服务要根据项目来开发,就是常说的不要为了微服务而微服务。当项目需要保持高可用
的时候,当然也得付出开发的复杂度问题,有舍有得,也说明了现在互联网服务越来越面向客户体验和高速迭代的发展趋势。