建立和感受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>

只需要启动就可以了。

我的感受

画面呈现的是这种感觉。

スクリーンショット 2018-02-15 17.26.52.png

弊端

我立即感到不适的原因是,显示的不是随时间流逝的情况。
换句话说,它只显示当前快照的状态。
因此,我无法确定这个状态是否比通常状态更加负载。
我认为这是最大的缺点。老实说,它很难看,而且无法直观地判断是否正常,因此不方便使用。

利益

    • すぐに構築することができること

 

    • 綺麗なUIで表示されること

 

    (ここでは話していないが)Eurekaなどにも対応していること

我稍微追求一下

内部实现(Spring Boot Admin 客户端)

主要处理逻辑被记录在de.codecentric.boot.admin.client.registration包中。
客户端仅进行调度,并将注册处理交给服务端。

クラス処理概要RegistrationApplicationListenerスケジューリングの登録、解除を行う。ApplicationRegistratorクラスのメソッドを起動時 or 定期的に呼び出すようにしている。ApplicationRegistratorSpring Boot Server AdminにHTTP通信を行い、Server側に登録依頼する処理をしている。

内部设计(Spring Boot Admin Server)

大致上存在着根据接收到的HTTP请求进行注册处理和定期更新状态的处理。主要与根据HTTP请求进行注册处理相关的类在这里。

パッケージクラス処理概要de.codecentric.boot.admin.registry.webRegistryControllerClient側からのAPIを受けるController。de.codecentric.boot.admin.registryApplicationRegistryClient側から受けた情報を元に、Clientの情報を登録しておく。

这里是定期更新状态的处理方法。

パッケージクラス処理概要de.codecentric.boot.admin.registryStatusUpdateApplicationListenerスケジューリングの登録、解除を行う。de.codecentric.boot.admin.registryStatusUpdaterClient側のActuator APIへアクセスし、ステータスを更新する。

提示:显示 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
广告
将在 10 秒后关闭
bannerAds