现如今我们经常在讨论服务端开发(主要是API服务)的时候谈及“微服务”。微服务设计方法逐渐成为了API开发的新业界标准。几乎所有的组织都在推广它。
在这篇教程当中,我们将探讨并且完成一个叫做配置服务(Config Server)的微服务特性。所有微服务的可配置参数都在配置服务中写入和维护。它更像是将属性/资源文件从项目的代码中统一抽离到一个外部服务,这样的话如果某个属性发生了改变,那么使用它的服务并不需要重新部署。在不重新部署微服务的情况下,所有的属性改变将可以体现出来。
配置服务器的想法来自于12-factor app宣言。这份宣言与开发现代原生云应用的最佳实践指导相关。它建议将属性/资源保存在服务器的环境当中。在这个环境里,这些资源会在服务运行的时候发生变化——不同的配置通常在每个环境当中有所不同。
举个例子,如果一个服务依赖与另一个服务(由于特定业务场景被调用),并且被依赖的服务的URL发生了改变,那么我们必须用新的地址构建和部署我们的服务。但是如果我们现在运用了12 factor app方法,并且从一个运行在不同进程里的外部服务读取配置,我们就只需要刷新配置服务了。
所以,这个想法非常清晰以及有效。现在让我们来看看如何创建配置服务器。