- 微服务是独立的, 独立的部署模块。
- 缩放的成本相对低于单片架构。
- 微服务是可独立管理的服务。当需要时, 它可以启用越来越多的服务。它最大程度地减少了对现有服务的影响。
- 可以单独更改或升级每个服务, 而不是在整个应用程序中进行升级。
- 微服务使我们能够开发自然的有机应用程序(后来通过添加更多功能或模块进行升级的应用程序)。
- 与重量级插入通信相比, 它使事件流技术能够轻松集成。
- 微服务遵循单一责任原则。
- 可以将苛刻的服务部署在多台服务器上以提高性能。
- 较少的依赖关系, 易于测试。
- 动态缩放。
- 更快的发布周期。
- 微服务具有分布式系统的所有相关复杂性。
- 不同服务之间的通信期间出现故障的可能性更高。
- 难以管理大量服务。
- 开发人员需要解决诸如网络延迟和负载平衡之类的问题。
- 在分布式环境上的复杂测试。
推荐阅读
- Spring Cloud使用Ribbon实现客户端负载平衡
- 微服务架构有什么挑战()
- Java|Redisson里的“看门狗”居然有这两个“bug”()
- 微服务|Consul - 微服务(六)
- springcloud-app
- 微服务教程
- JAVA|(七)SpringCloud系列——流量控制组件Sentinel实战
- 四种常用的微服务架构拆分方式
- OpenSergo 正式开源,多家厂商共建微服务治理规范和实现