建立和感受Spring Boot Admin – 也附加显示Git提交信息的技巧
由于Spring Initializr新增了Spring Boot Admin(Server)和Spring Boot Admin(Client),所以我决定试用一下。
Spring Boot Admin是一个可以对Spring Boot应用程序进行监控的库。
建造
环境
操作系统:macOS Sierra 10.12.6
Java版本:1.8.0_102
Spring Boot版本:1.5.10.RELEASE
Spring Boot Admin版本:1.5.7
建構程序
Spring Boot Admin采用了Server-Client的架构。
Server提供监控界面,而Client则成为被监控的应用程序。
春季引导管理服务器
在Spring Initializr中选择Spring Boot Admin(Server)来创建应用程序。
如果在依赖项中添加了spring-boot-admin-starter-server,那就可以了。
(如果按照Spring Initializr的方式创建,它应该会自动添加,所以不需要编辑pom.xml)
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
只需要一种选择,将以下内容修改成中文:删除Application类的@SpringBootApplication注解,然后需要添加以下注解。
@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminServerApplication.class, args);
}
}
如果将其作为应用程序启动,服务器端将正常工作。
访问http://localhost:8080即可显示监控网页。
Spring Boot管理客户端
使用Spring Initializr选择Spring Boot Admin(Client)创建应用程序。
由于Client本身应作为一个应用程序启动,因此在这里我们假设它是一个Web应用程序,并添加Web依赖。
按照上述的方式进行创建,应该已经添加了spring-boot-admin-starter-client(和spring-boot-starter-web)到依赖项中。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
只需在application.yml中记下连接服务器的信息(个人偏好yml而非properties,故作变更),暂时就可以了。
server:
port: 3000 # ①
spring:
boot:
admin:
url: http://localhost:8080 # ②
management:
security:
enabled: false # ③
请针对各个属性进行解释。
①:由于Spring Boot Admin Server默认在8080端口启动(并且没有特别设置),因此需要确保启动端口不重叠。
②:连接Spring Boot Admin Server的相关信息。
③:由于从Spring Boot 1.5.x开始,所有的端点都是安全的,因此为了确认起见会将其禁用。在生产环境中需要按照安全性部分的说明进行相应配置。
最好在pom.xml中添加构建信息(版本和构件等),以便在构建时显示。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
只需要启动就可以了。
我的感受
画面呈现的是这种感觉。
弊端
我立即感到不适的原因是,显示的不是随时间流逝的情况。
换句话说,它只显示当前快照的状态。
因此,我无法确定这个状态是否比通常状态更加负载。
我认为这是最大的缺点。老实说,它很难看,而且无法直观地判断是否正常,因此不方便使用。
利益
-
- すぐに構築することができること
-
- 綺麗なUIで表示されること
- (ここでは話していないが)Eurekaなどにも対応していること
我稍微追求一下
内部实现(Spring Boot Admin 客户端)
主要处理逻辑被记录在de.codecentric.boot.admin.client.registration包中。
客户端仅进行调度,并将注册处理交给服务端。
内部设计(Spring Boot Admin Server)
大致上存在着根据接收到的HTTP请求进行注册处理和定期更新状态的处理。主要与根据HTTP请求进行注册处理相关的类在这里。
这里是定期更新状态的处理方法。
提示:显示 Git 提交信息
默认情况下,在创建时不会显示Git的提交信息(如提交ID和分支),所以我查看了一下设置。
只需要使用Spring Boot Admin来显示Spring Boot Actuator的/info信息,并且只需在/info中添加Git信息即可。具体操作步骤如下。
在pom.xml中添加git-commit-id-plugin。
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
</plugins>
</build>
只需要这个就足够了!git-commit-id-plugin只需要创建git.properties文件,但是Spring Boot Actuator的GitInfoContributor类会自动找到文件并添加到/info中。
总结
果然没有时间的流逝真是有些痛苦呢。
如果是我,我想我不会特意选择这个项目的。
希望以后能够进一步改进,使使用更加方便。
看一个库的内容之后,会对学习有帮助呢。
偶尔想要抽出时间像这样确认库的时候。
GitHub (只需要一個選項)
我已经将此项目上传到我的GitHub上,请参考。
请提供更多的上下文或具体的句子以便本人将其翻译为中文。
春季引导管理台
- http://codecentric.github.io/spring-boot-admin/1.5.7/
显示Git提交信息
-
- http://www.baeldung.com/spring-git-information
-
- https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-application-info-autoconfigure
- https://docs.spring.io/spring-boot/docs/current/reference/html/howto-build.html#howto-git-info