如果系统没有很好地解耦,那么一旦出现问题,所有的功能将不可用。友一个黄金法则是:你是否能够修改一个服务并对其进行部署,而不影响其他任何服务。
- 微服务好处
- 技术异构性。在一个由多个服务相互协作的系统中,可以在不同的服务中使用最适合该服务的技术。
- 弹性。如果系统中的一个组件不可用了,但并没有导致级联故障,那么系统的其它部分还可以正常运行。
- 扩展。使用较小的多个服务,可以只对需要扩展的服务进行扩展,这样就可以把那些不需要扩展的服务运行在更小的/性能稍差的硬件上。
- 简化部署。在微服务架构中,各个服务部署是独立的,这样可以更快地对特定部分的代码进行部署。
- 与组织结构相匹配。
- 可组合性。可以对已有功能进行组合来实现新的应用。
- 对可替代性的优化。使用微服务架构的团队可以在需要时轻易地重写服务,或者删除不再使用的服务。
- 面向服务的架构
微服务架构是SOA的一种特定方法。