Spring Cloud(Finchley.RCI) (十一) Spring Boot Admin服务监控

随着开发周期的推移, 项目会不断变大, 切分出的服务也会越来越多, 这时一个个的微服务构成了错综复杂的系统。对于各个微服务系统的健康状态, 会话数量, 并发数, 服务资源, 延迟等度量信息的收集称成为了一个挑战。Spring Boot Admin应运而生, 它正是基于这些需求开发出的一套功能强大的监控管理系统。

Spring Boot Admin有两个角色组成, 一个是Spring Boot Admin Server, 一个是Spring Boot Admin Client.

Spring Boot Admin服务端

创建Spring Boot Admin Server

创建一个工程名为hello-spring-cloud-admin的项目, 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.funtl</groupId>
        <artifactId>hello-spring-cloud-dependencies</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../hello-spring-cloud-dependencies/pom.xml</relativePath>
    </parent>

    <artifactId>hello-spring-cloud-admin</artifactId>
    <packaging>jar</packaging>

    <name>hello-spring-cloud-admin</name>
    <url>http://www.funtl.com</url>
    <inceptionYear>2018-Now</inceptionYear>

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

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

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

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

        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.funtl.hello.spring.cloud.admin.AdminApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Application

通过@EnableAdminServer注解开启Admin功能

package com.funtl.hello.spring.cloud.admin;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

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

application.yml

设置端口号为: 8084

spring:
  application:
    name: hello-spring-cloud-admin
  zipkin:
    base-url: http://localhost:9411
server:
  port: 8084
management:
  endpoint:
    health:
      show-details: always
  endpoints:
    web:
      exposure:
        include: ["health","info"]
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka

Spring Boot Admin客户端

创建Spring Boot Admin Client

创建一个工程名为hello-spring-cloud-admin-client的项目, pom.xml文件如下

<dependency>
    <groupId>org.jolokia</groupId>
    <artifactId>jolokia-core</artifactId>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

Application

程序入口类没有特别需要修改的地方

application.yml

boot:
  admin:
    client:
      url: http://localhost:8084

启动顺序

1. 注册与发现

2. 分布式配置中心

3. 服务提供者

4. 服务消费者

5. API网关

发布了69 篇原创文章 · 获赞 8 · 访问量 9412

猜你喜欢

转载自blog.csdn.net/u011414629/article/details/101416589