微服务的优势
- 微服务是自包含的、独立的部署模块。
- 扩展的成本相对低于单体架构。
- 微服务是可独立管理的服务。它可以在需要时启用越来越多的服务,对现有服务的影响降至最低。
- 可以单独更改或升级每个服务,而不是在整个应用程序中升级。
- 微服务允许我们开发一个本质上是有机体的应用程序(一个后来通过添加更多功能或模块进行升级的应用程序)。
- 与重量级的插入通信相比,微服务能够更轻松集成事件流技术。
- 微服务遵循单一职责原则(一个服务完成某一功能)。
- 要求较高的服务可以部署在多台服务器上以提高性能。
- 更少的依赖和易于测试。
- 动态缩放。
- 更快的发布周期。
微服务的缺点
- 微服务具有分布式系统的所有相关复杂性。
- 不同服务之间的通信失败的可能性较高。
- 运维成本成倍增加。
- 开发者需要解决问题通讯问题,比如网络延迟和负载均衡。
- 在分布式环境中进行复杂的测试。