[Java SpringCloud戦闘道路] -3.SpringBoot管理者を追加する

0.まえがき

前の章では、最初にプロジェクトスケルトンを構築し、次にnacosを使用してゲートウェイプロジェクトを構築しました。ゲートウェイプロジェクトで構成されているものはそれほど多くありませんでした。次に、SpringCloudマイクロサービスで別の重要なプロジェクトであるSpringbootadminの構築に進みます。

1. Spring BootAdminの概要

画像

Spring Boot Adminは、Spring Bootベースのアプリケーションを監視するために使用され、Spring BootActuatorに基づく簡潔なビジュアルWebUIを提供します。Spring BootAdminは次の機能を提供します。

  • アプリケーションのヘルスステータスを表示します

  • アプリケーションの詳細を表示します:JVMとメモリ情報、マイクロメータ情報、データソース情報、キャッシュ情報など。

  • コンパイルされたバージョンを表示する

  • ログの表示とダウンロード

  • jvmパラメーターと環境変数値を表示する

  • SpringBootプロジェクトの構成を表示する

  • スレッドダンプを表示する

  • http-tracesを表示する

……

一連のコンテンツを待ちます。

2. Spring BootAdminプロジェクトを作成します

それでは、Spring BootAdminプロジェクトを作成しましょう。

2.1 SpringBoot管理サーバーを作成する

managerディレクトリで、monitorディレクトリを作成し、monitorディレクトリにpom.xmlファイルを作成して、次のコンテンツを追加します。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <artifactId>monitor</artifactId>
   <version>${revision}</version>
   <packaging>jar</packaging>
   <parent>
       <artifactId>manager</artifactId>
       <groupId>club.attachie</groupId>
       <version>${revision}</version>
   </parent>

</project>

新しいプロジェクトモジュールをmanager / pom.xmlに登録します。

<modules>
   <module>gateway</module>
   <module>monitor</module>
</modules>

モニターに次のディレクトリを作成します。

.
├── pom.xml
└── src
   └── main
       ├── java
       └── resources

Spring BootAdminの依存関係をルートディレクトリのpom.xmlに追加します。

まず、spring-boot-adminバージョン番号変数を追加します。

<spring-boot-admin.version>2.2.3</spring-boot-admin.version>

そして、dependencyManagement> dependenciesの下に追加します:

<dependency>
   <groupId>de.codecentric</groupId>
   <artifactId>spring-boot-admin-starter-server</artifactId>
   <version>${spring-boot-admin.version}</version>
</dependency>

monitor /pom.xmlファイルに追加します。

<dependencies>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
       <groupId>de.codecentric</groupId>
       <artifactId>spring-boot-admin-starter-server</artifactId>
   </dependency>
</dependencies>

実行

mvnクリーンインストール

mvn参照キャッシュを確認して更新します。

MonitorApplicationクラスを作成します。

package club.attachie.nature.monitor;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableAdminServer
public class MonitorApplication {
   public static void main(String[] args) {
       SpringApplication.run(MonitorApplication.class, args);
   }
}

起動後、次のインターフェイスが表示されます。

画像

3ゲートウェイサービスとの相互通信

前回の記事では、Spring Cloud Gatewayプロジェクトを追加しましたが、これまでのところ、2つのプロジェクトは完全に分離されており、無関係です。このセクションでは、2つの間の接続を確立します。つまり、ゲートウェイプロジェクトがSpring AdminBootに導入されて監視されます。

manager / gatewayのpom.xmlファイルに次の参照を追加します。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

次に、ゲートウェイプロジェクトの起動ポートを変更し、resources /bootstrap.ymlを追加します。

server:
 port: 8070

モニターにnacos参照を追加します。

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

MonitorApplicationを次のように変更します。

package club.attachie.nature.monitor;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;

@SpringBootApplication
@EnableAdminServer
@RefreshScope
public class MonitorApplication {
   public static void main(String[] args) {
       SpringApplication.run(MonitorApplication.class, args);
   }
}

モニタープロジェクトのbootsrap.ymlを作成します。

spring:
 application:
   name: monitor

 cloud:
     nacos:
     discovery:
       server-addr: 127.0.0.1:8848

ここでの構成に関しては、前回の記事でエラーが発生しました。config> server-addrではなくdiscovery> server-addrである必要があります。2つの違いがあります。Discoveryはnacosをサービスディスカバリセンターとして設定することを意味し、configはnacosを構成センターとして設定することを意味します。

ゲートウェイプロジェクトを開始し、プロジェクトを監視して効果を確認し、ポート8080にアクセスします。

2つのアプリケーションを検出できることがわかります。モニタープロジェクトがサービス検出センターとしてnacosを使用するように設定されていない場合、特定のオンラインアプリケーションは使用できません。ゲートウェイをクリックして入力すると、次のように表示されます。

画像

4.まとめ

監視システムとしてSpringBoot Adminプロジェクトを構築しました。ここで、さらにコンテンツを追加します。




おすすめ

転載: blog.51cto.com/15060511/2639812