但是这种方式为子服务增强了对权限系统的依赖性。和组件之间的耦合一样,增大的耦合性会导致服务的重用性下降。
所以说,如何对服务进行分割实际上是Microservice架构模式中最需要技巧的事情。在分割过程中,服务的总体性能是至关重要的,而各个服务的独立性也是大家所最为关心的特性。当然,Microservice架构模式仍在逐渐发展中,因此相信会有越来越多的实践经验被大家所发掘出来,进而指导我们更好地对服务进行分割。
共享服务
在前面一节中,我们已经提到了公共服务。实际上,这是Microservice架构模式中最需要技巧的一部分。
实际上,Microservice架构模式实现中常常需要一系列公有服务以辅助整个应用的运行。除了我们刚刚提到的权限管理服务,我们还需要能够监控各个服务实例的服务状态,服务实例的添加删除升级管理等等。这些服务在各个子服务的服务实例之间共享,甚至可以在其它应用中被重用。
只是很多人拥有一个这样的误区,那就是Microservice架构模式可以让服务的开发变得更容易。而实际情况则恰好相反。在刚开始使用Microservice架构模式开发应用的时候,其效率是明显低于通过Monolith进行开发的:
从上图中可以看到,在刚开始的阶段,使用Microservice架构模式开发应用的效率明显低于Monolith。但是随着应用规模的增大,基于Microservice架构模式的开发效率将明显上升,而基于Monolith模式开发的效率将逐步下降。
为什么呢?这是因为Microservice是一个架构模式,而不是一个特定的技术解决方案。其并不会将开发中的各个难点全部转移,而只是允许通过更为合适的技术来适当简化单个子服务的开发,或者绕过开发中可能遇到的部分难点。但是为了支持各个子服务的运行,我们还需要创建一系列公共服务。这些公共服务需要在编写第一个子服务的同时进行。这是导致Microservice架构模式在开发初期会具有较低效率的一个原因。
湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网