- Spring Boot 教程
- Spring Boot - 首页
- Spring Boot - 简介
- Spring Boot - 快速入门
- Spring Boot - 引导
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 构建系统
- Spring Boot - 代码结构
- Spring Bean 和依赖注入
- Spring Boot - 运行器
- Spring Boot - 启动器
- Spring Boot - 应用程序属性
- Spring Boot - 配置
- Spring Boot - 注解
- Spring Boot - 日志
- 构建 RESTful Web 服务
- Spring Boot - 异常处理
- Spring Boot - 拦截器
- Spring Boot - Servlet 过滤器
- Spring Boot - Tomcat 端口号
- Spring Boot - Rest 模板
- Spring Boot - 文件处理
- Spring Boot - 服务组件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服务
- Spring Boot - CORS 支持
- Spring Boot - 国际化
- Spring Boot - 调度
- Spring Boot - 启用 HTTPS
- Spring Boot - Eureka 服务器
- 使用 Eureka 注册服务
- 网关代理服务器和路由
- Spring Cloud 配置服务器
- Spring Cloud 配置客户端
- Spring Boot - Actuator
- Spring Boot - 管理服务器
- Spring Boot - 管理客户端
- Spring Boot - 启用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 创建 Docker 镜像
- 跟踪微服务日志
- Spring Boot - Flyway 数据库
- Spring Boot - 发送电子邮件
- Spring Boot - Hystrix
- Spring Boot - WebSocket
- Spring Boot - 批处理服务
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 单元测试用例
- Rest Controller 单元测试
- Spring Boot - 数据库处理
- 保护 Web 应用程序
- Spring Boot - 带 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登录
- Spring Boot 资源
- Spring Boot - 快速指南
- Spring Boot - 有用资源
- Spring Boot - 讨论
Spring Boot - 管理服务器
使用 Spring Boot Actuator 端点监控您的应用程序有点困难。因为,如果您有“n”个应用程序,每个应用程序都有单独的 Actuator 端点,从而使监控变得困难。Spring Boot Admin Server 是一个用于管理和监控您的微服务应用程序的应用程序。
为了处理这种情况,CodeCentric 团队提供了一个 Spring Boot Admin UI,用于在一个地方管理和监控所有 Spring Boot 应用程序 Actuator 端点。
为了构建 Spring Boot Admin Server,我们需要在您的构建配置文件中添加以下依赖项。
Maven 用户可以在您的 pom.xml 文件中添加以下依赖项:
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>3.3.3</version> </dependency>
Gradle 用户可以在您的 build.gradle 文件中添加以下依赖项:
compile group: 'de.codecentric', name: 'spring-boot-admin-starter-server', version: '3.3.3'
创建 Spring Admin Server
首先,从 Spring Initializer 页面下载 Spring Boot 项目,并选择 Spring Admin Server 和 Admin Server UI 依赖项。观察下面给出的屏幕截图:
在您的主 Spring Boot 应用程序类文件中添加 @EnableAdminServer 注解。@EnableAdminServer 注解用于将您的应用程序作为 Admin Server 来监控所有其他微服务。
AdminserverApplication
package com.tutorialspoint.adminserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.codecentric.boot.admin.config.EnableAdminServer; @SpringBootApplication @EnableAdminServer public class AdminserverApplication { public static void main(String[] args) { SpringApplication.run(AdminserverApplication.class, args); } }
现在,在 application.properties 文件中定义 server.port 和 application name,如下所示:
server.port = 9090 spring.application.name = adminserver
对于 YAML 用户,请使用以下属性在 application.yml 文件中定义端口号和应用程序名称。
server: port: 9090 spring: application: name: adminserver
构建配置文件如下所示。
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>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.tutorialspoint</groupId> <artifactId>adminserver</artifactId> <version>0.0.1-SNAPSHOT</version> <name>adminserver</name> <description>Demo project for Spring Boot</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>21</java.version> <spring-boot-admin.version>3.3.3</spring-boot-admin.version> </properties> <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> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>${spring-boot-admin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
对于 Gradle 用户 - build.gradle 文件
buildscript { ext { springBootVersion = '3.3.3' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' group = 'com.tutorialspoint' version = '0.0.1-SNAPSHOT' sourceCompatibility = 21 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter') compile group: 'de.codecentric', name: 'spring-boot-admin-server', version: '3.3.3' testCompile('org.springframework.boot:spring-boot-starter-test') }
编译和执行
您可以创建一个可执行的 JAR 文件,并使用以下 Maven 或 Gradle 命令运行 Spring Boot 应用程序:
对于 Maven,请使用此处显示的命令:
mvn clean install
“BUILD SUCCESS”后,您可以在 target 目录下找到 JAR 文件。
对于 Gradle,请使用此处显示的命令:
gradle clean build
“BUILD SUCCESSFUL”后,您可以在 build/libs 目录下找到 JAR 文件。
现在,使用以下命令运行 JAR 文件:
java –jar <JARFILE>
现在,应用程序已在 Tomcat 端口 9090 上启动,如下所示:
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ [32m :: Spring Boot :: [39m [2m (v3.3.3)[0;39m [2m2024-09-12T16:16:44.507+05:30[0;39m [32m INFO[0;39m [35m18380[0;39m [2m---[0;39m [2m[adminserver] [ main][0;39m [2m[0;39m[36mc.t.adminserver.AdminserverApplication [0;39m [2m:[0;39m Starting AdminserverApplication using Java 21.0.3 with PID 18380 (E:\Dev\adminserver\target\classes started by Tutorialspoint in E:\Dev\adminserver) [2m2024-09-12T16:16:44.510+05:30[0;39m [32m INFO[0;39m [35m18380[0;39m [2m---[0;39m [2m[adminserver] [ main][0;39m [2m[0;39m[36mc.t.adminserver.AdminserverApplication [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default" [2m2024-09-12T16:16:45.909+05:30[0;39m [33m WARN[0;39m [35m18380[0;39m [2m---[0;39m [2m[adminserver] [ main][0;39m [2m[0;39m[36mion$DefaultTemplateResolverConfiguration[0;39m [2m:[0;39m Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) [2m2024-09-12T16:16:46.179+05:30[0;39m [32m INFO[0;39m [35m18380[0;39m [2m---[0;39m [2m[adminserver] [ main][0;39m [2m[0;39m[36mo.s.b.a.e.web.EndpointLinksResolver [0;39m [2m:[0;39m Exposing 1 endpoint beneath base path '/actuator' [2m2024-09-12T16:16:46.867+05:30[0;39m [32m INFO[0;39m [35m18380[0;39m [2m---[0;39m [2m[adminserver] [ main][0;39m [2m[0;39m[36mo.s.b.web.embedded.netty.NettyWebServer [0;39m [2m:[0;39m Netty started on port 9090 (http) [2m2024-09-12T16:16:46.881+05:30[0;39m [32m INFO[0;39m [35m18380[0;39m [2m---[0;39m [2m[adminserver] [ main][0;39m [2m[0;39m[36mc.t.adminserver.AdminserverApplication [0;39m [2m:[0;39m Started AdminserverApplication in 2.702 seconds (process running for 3.754)
现在,从您的 Web 浏览器中点击以下 URL 并查看 Admin Server UI。
https://127.0.0.1:9090/