如何引入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

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):