4

SBAP は非常に便利な開発ツールであるため、アプリケーションで SBAP を使用する方法を理解しようとしています。私は彼らのリファレンスガイドを読んでいますが、いくつかのことを理解していません. これが私のアプリケーションの私のpomです。

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <packaging>war</packaging>

    <groupId>com.batch.books.test</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>1.3.1.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <version>1.3.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>test</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

そして、ここに私のものがありますApplication.java

package app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

@SpringBootApplication
@EnableAdminServer
@EnableDiscoveryClient
public class Application {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);
    }

}

そして私のapplication.ymlファイル:

info:
  version: @pom.version@
  stage: test

spring:
  application:
    name: @pom.artifactId@
  boot:
    admin:
      url: http://localhost:8080

残りは私が非常に混乱しています。

  1. では、アプリケーションをサーバーおよびクライアントとして登録していますか?
  2. このアプリケーションを実行して管理ページにアクセスするにはどうすればよいですか? 彼らは、管理ページを表示するためにアクセスする URL について言及していません。それはただですか:http://localhost:8080
  3. これを開発用に設定し、本番環境ではオフにするにはどうすればよいですか? 下部の参照ガイドには次のように記載されています。

ビジネス アプリケーションに spring-boot-admin を含めることはできますか?

tl;dr できますが、すべきではありません。spring.boot.admin.context-path を設定して、UI と REST-api が提供されるパスを変更できますが、アプリケーションの複雑さによっては、問題が発生する可能性があります。一方、私の意見では、アプリケーションがそれ自体を監視することは意味がありません。アプリケーションがダウンした場合、監視ツールもダウンします。

これは、これを本番環境に置くべきではないことを意味しています。したがって、Spring Boot 管理者を使用して本番環境でアプリを監視できない場合、何がポイントになるのでしょうか? 1 つはビジネス アプリケーションで、もう 1 つはビジネス アプリケーションを監視する監視アプリケーションです。

4

2 に答える 2

4
  1. では、アプリケーションをサーバーおよびクライアントとして登録していますか?

あなたの例では、そうです。管理サーバーがそれ自体のクライアントであることは問題ではありません。実際、spring-boot-admin-sample はこのように構成されているため、管理サーバー自体に関する情報を取得できます。

  1. このアプリケーションを実行して管理ページにアクセスするにはどうすればよいですか? 彼らは、管理ページを表示するためにアクセスする URL について言及していません。それだけですか: http://localhost:8080 ?

はい。設定しない場合spring.boot.admin.context-path、管理者はルートで提供されます。そのため、管理者をビジネス アプリ内に同梱する場合は、別の場所で提供されるように構成する必要がありますspring.boot.admin.context-path

  1. これを開発用に設定し、本番環境ではオフにするにはどうすればよいですか? 下部の参照ガイドには次のように書かれています:...

ポイントは、2 つの別々のアプリケーションを使用することです。これは、開発段階から qa 段階を経て生産段階に至るまでの方法です。私たちは常にビジネスと管理サーバーを分離しています。ビジネス アプリケーション内で管理サーバーを条件付きで有効にする場合は、次のアプローチを試してください。@Configuration特定のプロファイル内でのみアクティブになるクラスを作成し、@EnableAdminServerこの構成に移動します。

お役に立てれば。

于 2016-01-24T22:07:15.547 に答える
1

もちろん、ある程度のセキュリティが組み込まれていることを確認した後は、本番環境でSpringブート管理者を監視に使用しないことをお勧めするとは思いません。

SBAP の正しい使用パターンは、GUI を介してすべての Springboot サービスの集約ビューを提供するスタンドアロン アプリケーションと考えることです。実際、HEALTH/METRICS の URL が ACTUATOR を介して公開されている限り、MONITORED サービスは、そのステータスを監視しているアプリケーションがあるという事実を認識する必要さえありません。

SBAP は、EUREKA などのサービス レジストリからサービスを検出した後、標準エンドポイントからすべての METRICS をプルできます。これにより、SBAP は、EUREKA 以外のサービスを静的に認識することから完全に切り離されます。サンプルの YAML 構成と Java コードは次のとおりです。

@SpringBootApplication
@EnableDiscoveryClient
@EnableAdminServer
public class SpringbootAdminApplication {

   public static void main(String[] args) {
      SpringApplication.run(SpringbootAdminApplication.class, args);
   }
}

ブートストラップ.yml

  eureka:
    instance:
       leaseRenewalIntervalInSeconds: 10
    client:
      registerWithEureka: false
      fetchRegistry: true
      serviceUrl:
        defaultZone: http://localhost:8761/eureka/
  spring:
    boot:
     admin:
       url: http://localhost:8080
    cloud:
      config:
        enabled: false

SpringBoot プロジェクトで上記の 2 つの構成だけを使用すると、「 http://localhost:8080」経由でアクセスしてサービスを監視できる SBAP サーバーになります。

于 2016-05-18T15:11:43.007 に答える