我们现在已经可以基于Spring Boot来开发微服务了,但是由于我们将原来单体应用打散,形成众多的微服务,微服务之间相对独立,而且每个微服务都可能存在多个实例,这对运维人员来说,想管理好这些微服务的难度很大。我们需要一个机制,便于运营人员管理好各个微服务。
环境配置
在通常情况下,我们有开发环境,通常是开发人员本地环境,或者是公司内部的开发服务器,然后有测试环境,通常为公司内部服务器或公网服务器,还有生产环境,负责对外提供服务,放在公网服务器中。这三个环境的配置通常是不一样的,把一个应用部署到这些环境中去时,每次都修改配置信息,不仅非常繁琐,也非常容易出错。在Spring Boot中,通过定义不同的profile来解决这个问题。
我们首先针对这三种情况,分别建立三个配置文件:application-dev.properties、application-test.properties、application-prod.properties,将各自环境中的配置信息写在各自的配置文件中,然后在项目缺省的配置文件application.properties中,指定当前使用的profile,如下所示:
# 指定开发环境为缺省环境
spring.profiles.active=dev
我们也可以在启动时指定使用的环境:
java -jar my-app.jar --spring.profiles.active=test
上面的命令指定当前使用测试环境。
在服务部署完成之后,监控服务的状态对于运维人员来说,是非常重要的工作,而Spring Boot为这项工作,提供了非常方便的工具。
服务监控
为了进行服务监控,我们需要在项目中引入actuator库,如下所示:
<!-- 服务监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动应用程序,访问网址:https://localhost:8443/actuator/health,会打印出如下信息:
显示上述信息就代表我们的服务目前状态是正常的。