聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!

沙海 2021年8月30日04:41:10Java评论33字数 10234阅读34分6秒阅读模式
摘要

智能摘要

智能摘要文章源自JAVA秀-https://www.javaxiu.com/43122.html

去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上。最近我就被分配了要将我们核心的微服务应用全部监控起来的任务。欢迎加入我的知识星球,一起探讨架构,交流源码。MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。提供近3W行代码的SpringBoot示例,以及超4W行代码的电商微服务项目。文章源自JAVA秀-https://www.javaxiu.com/43122.html

原文约 7375 | 图片 19 | 建议阅读 15 分钟 | 评价反馈文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!

点击关注 ? 芋道源码 文章源自JAVA秀-https://www.javaxiu.com/43122.html

收录于话题#芋道源码,266个文章源自JAVA秀-https://www.javaxiu.com/43122.html

点击上方“芋道源码”,选择“设为星标文章源自JAVA秀-https://www.javaxiu.com/43122.html

管她前浪,还是后浪?文章源自JAVA秀-https://www.javaxiu.com/43122.html

能浪的浪,才是好浪!文章源自JAVA秀-https://www.javaxiu.com/43122.html

每天 10:33 更新文章,每天掉亿点点头发...文章源自JAVA秀-https://www.javaxiu.com/43122.html

文章源自JAVA秀-https://www.javaxiu.com/43122.html

源码精品专栏文章源自JAVA秀-https://www.javaxiu.com/43122.html

 文章源自JAVA秀-https://www.javaxiu.com/43122.html

文章源自JAVA秀-https://www.javaxiu.com/43122.html

来源:juejin.im/post/5e2179def265da3e152d2561文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

前言

去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上。这不,最近我就被分配了要将我们核心的微服务应用全部监控起来的任务。我们的微服务应用都是SpringBoot 应用,因此就自然而然的想到了借助Spring Boot 的Actuator 模块。(没吃过猪肉总听过猪叫见过猪跑吧?)。文章源自JAVA秀-https://www.javaxiu.com/43122.html

本篇是我在完成这个工单之后,对Spring Boot Actuator模块 学习应用的总结。在本篇文章中,你可以学习到:文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • Spring Boot Actuator 的快速使用入门文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • Spring Boot Actuator 的一些重要的endpoints的介绍文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 如何通过Actuator 模块实时查看当前应用的线程 dump信息文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 如何通过Actuator 模块实时查看当前应用的堆信息文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 如何通过Actuator 模块实时修改当前应用的日志打印等级文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • ...文章源自JAVA秀-https://www.javaxiu.com/43122.html

之后我还会介绍:文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • TODO:SpringBoot 微服务应用集成Prometheus + Grafana实现监控告警文章源自JAVA秀-https://www.javaxiu.com/43122.html

推荐下自己做的 Spring Boot 的实战项目:文章源自JAVA秀-https://www.javaxiu.com/43122.html

https://github.com/YunaiV/ruoyi-vue-pro文章源自JAVA秀-https://www.javaxiu.com/43122.html

一、什么是 Spring Boot Actuator

Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用。这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过HTTP 和 JMX 访问。文章源自JAVA秀-https://www.javaxiu.com/43122.html

因为暴露内部信息的特性,Actuator 也可以和一些外部的应用监控系统整合(Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等)。这些监控系统提供了出色的仪表板,图形,分析和警报,可帮助你通过一个统一友好的界面,监视和管理你的应用程序。文章源自JAVA秀-https://www.javaxiu.com/43122.html

Actuator使用Micrometer与这些外部应用程序监视系统集成。这样一来,只需很少的配置即可轻松集成外部的监控系统。文章源自JAVA秀-https://www.javaxiu.com/43122.html

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可。Micrometer 会负责完成与不同监控系统的适配工作。这就使得切换监控系统变得很容易。文章源自JAVA秀-https://www.javaxiu.com/43122.html

对比 Slf4j 之于 Java Logger 中的定位。文章源自JAVA秀-https://www.javaxiu.com/43122.html

推荐下自己做的 Spring Cloud 的实战项目:文章源自JAVA秀-https://www.javaxiu.com/43122.html

https://github.com/YunaiV/onemall文章源自JAVA秀-https://www.javaxiu.com/43122.html

二、快速开始,创建一个Spring Boot Actuator Demo

我们先创建一个demo应用。文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 你可以通过Spring Boot CLI 创建:文章源自JAVA秀-https://www.javaxiu.com/43122.html

spring init -d=web,actuator -n=actuator-demo actuator-demo
  • 或者通过Spring Initializr 创建:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 对应的maven依赖:文章源自JAVA秀-https://www.javaxiu.com/43122.html

<dependencies>    ... <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-actuator</artifactId> </dependency>    ...</dependencies>
  • 对应的Gradle 依赖:文章源自JAVA秀-https://www.javaxiu.com/43122.html

dependencies { compile("org.springframework.boot:spring-boot-starter-actuator")}

三、Endpoints 介绍

Spring Boot 提供了所谓的 endpoints (下文翻译为端点)给外部来与应用程序进行访问和交互。文章源自JAVA秀-https://www.javaxiu.com/43122.html

打比方来说,/health 端点 提供了关于应用健康情况的一些基础信息。metrics 端点提供了一些有用的应用程序指标(JVM 内存使用、系统CPU使用等)。文章源自JAVA秀-https://www.javaxiu.com/43122.html

这些 Actuator 模块本来就有的端点我们称之为原生端点。根据端点的作用的话,我们大概可以分为三大类:文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密切相关的配置类信息。文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如:内存信息、线程池信息、HTTP请求统计等。文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 操作控制类:提供了对应用的关闭等操作类功能。文章源自JAVA秀-https://www.javaxiu.com/43122.html

详细的原生端点介绍,请以官网为准,这里就不赘述徒增篇幅。文章源自JAVA秀-https://www.javaxiu.com/43122.html

需要注意的就是:文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 每一个端点都可以通过配置来单独禁用或者启动文章源自JAVA秀-https://www.javaxiu.com/43122.html

  • 不同于Actuator 1.x,Actuator 2.x 的大多数端点默认被禁掉 。Actuator 2.x 中的默认端点增加了/actuator前缀。默认暴露的两个端点为/actuator/health/actuator/info文章源自JAVA秀-https://www.javaxiu.com/43122.html

四、端点暴露配置

我们可以通过以下配置,来配置通过JMX 和 HTTP 暴露的端点。文章源自JAVA秀-https://www.javaxiu.com/43122.html

PropertyDefault
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include*
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.includeinfo, healt

可以打开所有的监控点文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.endpoints.web.exposure.include=*

也可以选择打开部分,"*" 代表暴露所有的端点,如果指定多个端点,用","分开文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.endpoints.web.exposure.exclude=beans,trace

Actuator 默认所有的监控点路径都在/actuator/*,当然如果有需要这个路径也支持定制。文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.endpoints.web.base-path=/minitor

设置完重启后,再次访问地址就会变成/minitor/*文章源自JAVA秀-https://www.javaxiu.com/43122.html

现在我们按照如下配置:文章源自JAVA秀-https://www.javaxiu.com/43122.html

# "*" 代表暴露所有的端点 如果指定多个端点,用","分开management.endpoints.web.exposure.include=*# 赋值规则同上management.endpoints.web.exposure.exclude=

启动DEMO程序,访问http://localhost:8080/actuator,查看暴露出来的端点:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

上面这样显示是因为chrome 浏览器安装了 JSON-handle 插件,实际上就是返回一大段json文章源自JAVA秀-https://www.javaxiu.com/43122.html

下面,我会着重介绍几个比较重要的端点。文章源自JAVA秀-https://www.javaxiu.com/43122.html

五、重要端点解析

5.1 /health端点

/health端点会聚合你程序的健康指标,来检查程序的健康情况。端点公开的应用健康信息取决于:文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.endpoint.health.show-details=always

该属性可以使用以下值之一进行配置:文章源自JAVA秀-https://www.javaxiu.com/43122.html

NameDescription
never不展示详细信息,up或者down的状态,默认配置
when-authorized详细信息将会展示给通过认证的用户。授权的角色可以通过management.endpoint.health.roles配置
always对所有用户暴露详细信息

按照上述配置,配置成always之后,我们启动项目,访问http://localhost:8080/actuator/health端口,可以看到这样的信息:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

是不是感觉好像健康信息有点少?先别急,那是因为我们创建的是一个最基础的Demo项目,没有依赖很多的组件。文章源自JAVA秀-https://www.javaxiu.com/43122.html

/health端点有很多自动配置的健康指示器:如redis、rabbitmq、db等组件。当你的项目有依赖对应组件的时候,这些健康指示器就会被自动装配,继而采集对应的信息。如上面的 diskSpace 节点信息就是DiskSpaceHealthIndicator 在起作用。文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

上述截图取自官方文档文章源自JAVA秀-https://www.javaxiu.com/43122.html

这是我另一个项目的/health端点信息。文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

当如上的组件有一个状态异常,应用服务的整体状态即为down。我们也可以通过配置禁用某个组件的健康监测。文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.health.mongo.enabled: false

或者禁用所有自动配置的健康指示器:文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.health.defaults.enabled: false

⭐自定义 Health Indicator

当然你也可以自定义一个Health Indicator,只需要实现HealthIndicator 接口或者继承AbstractHealthIndicator类。文章源自JAVA秀-https://www.javaxiu.com/43122.html

/** * @author Richard_yyf * @version 1.0 2020/1/16 */@Componentpublic class CustomHealthIndicator extends AbstractHealthIndicator {    @Override    protected void doHealthCheck(Health.Builder builder) throws Exception {        // 使用 builder 来创建健康状态信息        // 如果你throw 了一个 exception,那么status 就会被置为DOWN,异常信息会被记录下来        builder.up()                .withDetail("app", "这个项目很健康")                .withDetail("error", "Nothing, I'm very good");    }}

最终效果:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

5.2 /metrics端点

/metrics端点用来返回当前应用的各类重要度量指标,比如:内存信息、线程信息、垃圾回收信息、tomcat、数据库连接池等。文章源自JAVA秀-https://www.javaxiu.com/43122.html

{    "names": [        "tomcat.threads.busy",        "jvm.threads.states",        "jdbc.connections.active",        "jvm.gc.memory.promoted",        "http.server.requests",        "hikaricp.connections.max",        "hikaricp.connections.min",        "jvm.memory.used",        "jvm.gc.max.data.size",        "jdbc.connections.max",         ....    ]}

不同于1.x,Actuator在这个界面看不到具体的指标信息,只是展示了一个指标列表。 为了获取到某个指标的详细信息,我们可以请求具体的指标信息,像这样:文章源自JAVA秀-https://www.javaxiu.com/43122.html

http://localhost:8080/actuator/metrics/{MetricName}

比如我访问/actuator/metrics/jvm.memory.max,返回信息如下:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

你也可以用query param的方式查看单独的一块区域。比如你可以访问/actuator/metrics/jvm.memory.max?tag=id:Metaspace。结果就是:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

5.3/loggers端点

/loggers 端点暴露了我们程序内部配置的所有logger的信息。我们访问/actuator/loggers可以看到,文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

你也可以通过下述方式访问单独一个logger,文章源自JAVA秀-https://www.javaxiu.com/43122.html

http://localhost:8080/actuator/loggers/{name}

比如我现在访问 root logger,http://localhost:8080/actuator/loggers/root文章源自JAVA秀-https://www.javaxiu.com/43122.html

{    "configuredLevel": "INFO",    "effectiveLevel": "INFO"}

⭐改变运行时的日志等级

/loggers端点我最想提的就是这个功能,能够动态修改你的日志等级。文章源自JAVA秀-https://www.javaxiu.com/43122.html

比如,我们可以通过下述方式来修改 root logger的日志等级。我们只需要发起一个URL 为http://localhost:8080/actuator/loggers/rootPOST请求,POST报文如下:文章源自JAVA秀-https://www.javaxiu.com/43122.html

{   "configuredLevel": "DEBUG"}

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

仔细想想,这个功能是不是非常有用。如果在生产环境中,你想要你的应用输出一些Debug信息以便于你诊断一些异常情况,你你只需要按照上述方式就可以修改,而不需要重启应用。文章源自JAVA秀-https://www.javaxiu.com/43122.html

如果想重置成默认值,把value 改成 null文章源自JAVA秀-https://www.javaxiu.com/43122.html

5.4 /info端点

/info端点可以用来展示你程序的信息。我理解过来就是一些程序的基础信息。并且你可以按照自己的需求在配置文件application.properties中个性化配置(默认情况下,该端点只会返回一个空的json内容。):文章源自JAVA秀-https://www.javaxiu.com/43122.html

info.app.name=actuator-test-demoinfo.app.encoding=UTF-8info.app.java.source=1.8info.app.java.target=1.8# 在 maven 项目中你可以直接用下列方式引用 maven properties的值# info.app.encoding=@project.build.sourceEncoding@# info.app.java.source=@java.version@# info.app.java.target=@java.version@

启动项目,访问http://localhost:8080/actuator/info文章源自JAVA秀-https://www.javaxiu.com/43122.html

{    "app": {        "encoding": "UTF-8",        "java": {            "source": "1.8.0_131",            "target": "1.8.0_131"        },        "name": "actuator-test-demo"    }}

5.5 /beans端点

/beans端点会返回Spring 容器中所有bean的别名、类型、是否单例、依赖等信息。文章源自JAVA秀-https://www.javaxiu.com/43122.html

访问http://localhost:8080/actuator/beans,返回如下:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

5.6 /heapdump 端点

访问:http://localhost:8080/actuator/heapdump会自动生成一个 Jvm 的堆文件 heapdump。我们可以使用 JDK 自带的 Jvm 监控工具 VisualVM 打开此文件查看内存快照。文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

5.7 /threaddump 端点

这个端点我个人觉得特别有用,方便我们在日常定位问题的时候查看线程的情况。主要展示了线程名、线程ID、线程的状态、是否等待锁资源、线程堆栈等信息。就是可能查看起来不太直观。访问http://localhost:8080/actuator/threaddump返回如下:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

image.png文章源自JAVA秀-https://www.javaxiu.com/43122.html

5.8 /shutdown端点

这个端点属于操作控制类端点,可以优雅关闭 Spring Boot 应用。要使用这个功能首先需要在配置文件中开启:文章源自JAVA秀-https://www.javaxiu.com/43122.html

management.endpoint.shutdown.enabled=true

由于 shutdown 接口默认只支持 POST 请求 ,我们启动Demo项目,向http://localhost:8080/actuator/shutdown发起POST请求。返回信息:文章源自JAVA秀-https://www.javaxiu.com/43122.html

{    "message": "Shutting down, bye..."}

然后应用程序被关闭。文章源自JAVA秀-https://www.javaxiu.com/43122.html

由于开放关闭应用的操作本身是一件非常危险 的事,所以真正在线上使用的时候,我们需要对其加入一定的保护机制,比如:定制Actuator的端点路径、整合Spring Security进行安全校验 等。(不是特别必要的话,这个端点不用开)文章源自JAVA秀-https://www.javaxiu.com/43122.html

六、整合Spring Security 对端点进行安全校验

由于端点的信息和产生的交互都是非常敏感的,必须防止未经授权的外部访问。如果您的应用程序中存在Spring Security 的依赖,则默认情况下使用基于表单的HTTP身份验证 来保护端点。文章源自JAVA秀-https://www.javaxiu.com/43122.html

如果没有,只需要增加对应的依赖即可:文章源自JAVA秀-https://www.javaxiu.com/43122.html

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

添加之后,我们需要定义安全校验规则,来覆盖Spring Security 的默认配置。文章源自JAVA秀-https://www.javaxiu.com/43122.html

这里我给出了两个版本的模板配置:文章源自JAVA秀-https://www.javaxiu.com/43122.html

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;import org.springframework.boot.actuate.context.ShutdownEndpoint;import org.springframework.boot.autoconfigure.security.servlet.PathRequest;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;/** * @author Richard_yyf */@Configurationpublic class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {    /*     * version1:     * 1. 限制 '/shutdown'端点的访问,只允许ACTUATOR_ADMIN访问     * 2. 允许外部访问其他的端点     * 3. 允许外部访问静态资源     * 4. 允许外部访问 '/'     * 5. 其他的访问需要被校验     * version2:     * 1. 限制所有端点的访问,只允许ACTUATOR_ADMIN访问     * 2. 允许外部访问静态资源     * 3. 允许外部访问 '/'     * 4. 其他的访问需要被校验     */    @Override    protected void configure(HttpSecurity http) throws Exception {        // version1//        http//                .authorizeRequests()//                    .requestMatchers(EndpointRequest.to(ShutdownEndpoint.class))//                        .hasRole("ACTUATOR_ADMIN")//                .requestMatchers(EndpointRequest.toAnyEndpoint())//                    .permitAll()//                .requestMatchers(PathRequest.toStaticResources().atCommonLocations())//                    .permitAll()//                .antMatchers("/")//                    .permitAll()//                .antMatchers("/**")//                    .authenticated()//                .and()//                .httpBasic();        // version2        http                .authorizeRequests()                .requestMatchers(EndpointRequest.toAnyEndpoint())                    .hasRole("ACTUATOR_ADMIN")                .requestMatchers(PathRequest.toStaticResources().atCommonLocations())                    .permitAll()                .antMatchers("/")                    .permitAll()                .antMatchers("/**")                    .authenticated()                .and()                .httpBasic();    }}

application.properties的相关配置如下:文章源自JAVA秀-https://www.javaxiu.com/43122.html

# Spring Security Default user name and passwordspring.security.user.name=actuatorspring.security.user.password=actuatorspring.security.user.roles=ACTUATOR_ADMIN

- END -文章源自JAVA秀-https://www.javaxiu.com/43122.html

欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

已在知识星球更新源码解析如下:文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

聊聊Spring Boot服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!文章源自JAVA秀-https://www.javaxiu.com/43122.html

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。文章源自JAVA秀-https://www.javaxiu.com/43122.html

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。文章源自JAVA秀-https://www.javaxiu.com/43122.html

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。文章源自JAVA秀-https://www.javaxiu.com/43122.html

文章源自JAVA秀-https://www.javaxiu.com/43122.html

文章有帮助的话,在看,转发吧。谢谢支持哟 (*^__^*)
文章源自JAVA秀-https://www.javaxiu.com/43122.html

阅读原文文章源自JAVA秀-https://www.javaxiu.com/43122.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定