如何引入springboot-admin来监控微服务应用?
大家好我是图恩,最近在给网站做一些升级工作,将原来的单体应用改造成微服务。网站原来就是一个springboot单体应用,门户跟后台管理公用一个后台服务,在了解到微服务后就有引入nacos的想法。
说干就干,目前的服务本来就区分门户跟后台管理两个模块,所有拆成两个微服务比较适合,这样门户的微服务就只负责用户浏览访问,后台管理服务负责文章发布、设置等一些需要用户登录的行为。
经过一番摸索后终于成功将门户拆分成微服务,引入了nacos跟gateway,门户跟后台管理的服务调用都通过gateway,通过gateway的路由再转发到各自后端服务。
目前服务正常运行,但是感觉访问相比之前会稍微慢一些,就想给应用引入监控,这样就可以随时查看应用的运行状态,经过了解可以引入springboot-admin来实现。
以下是在接入微服务的情况下引入springboot-admin的步骤:
首先要明确管理端跟客户端的概念,管理端可以理解为一个服务中心大厅,客户端理解为进来的客户,客户通过取号来跟服务中心建立关联,服务中心管理着所有的客户,比如客户是要办理的业务,等待的人数等。
管理端:
1、引入spring-boot-starter-actuator 依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.7.7</version>
</dependency>
2、在启动类上面配置@EnableAdminServer,这样管理端的工作就已经完成。
@SpringBootApplication
@EnableAdminServer
public class AdminService {
public static void main(String[] args) {
SpringApplication.run(AdminService.class,args);
}
}
3、然后启动应用就可以看到管理端的页面
客户端:
1、引入spring-boot-starter-actuator 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、yml文件配置管理端的地址,然后默认暴露所有的监控信息,当然management你也可以不配置,不配置就只能显示默认开启的监控信息。
server:
port: 8082
spring:
boot:
admin:
client:
url: http://localhost:8084 #这里配置admin server 的地址
management:
endpoints:
web:
exposure:
include: '*'
3、启动应用,可以登录管理端已经可以看到客户端的信息,说明接入成功,点击对应的客户端应用可以查看运行信息,比如内存、线程、性能、环境等。
要注意的是,如果你的应用已经使是微服务了,那么就不用在客户端引入spring-boot-admin-starter-client 这个包了,因为会自动执行注册发现服务,这也是为什么前面说在微服务下这个前提了,如果不是微服务,那么按照官网的教程客户端还需要引入client包,因为需要靠这个包去执行注册服务。
官网地址:https://codecentric.github.io/spring-boot-admin/2.7.7/#getting-started
发表评论 (审核通过后显示评论):