SpringBoot1.x 开发热部署和监控管理

热部署

在开发中我们修改一个 Java 文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署)。

  • 模板引擎

    • 在 SpringBoot 中开发情况下禁用模板引擎的 cache
    • 页面模板改变,按 CTRL+F9 可以重新编译当前页面并生效
  • Spring Loaded
    • Spring 官方提供的热部署程序,实现修改类文件的热部署
    • 下载 Spring Loaded
    • 添加运行时参数,javaagent:/parzulpan/dev/springloaded-xx.jar -noverify
  • JRebel
    • 收费的一个热部署软件
    • 安装插件使用即可
  • Spring Boot Devtools
    • 推荐使用

    • 引入依赖

              <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
      </dependency>
    • 按 CTRL+F9 生效

监控管理

通过引入 spring-boot-starter-actuator,可以使用 Spring Boot 为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等。

使用步骤

  • 引入依赖

            <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  • 通过 http 方式访问监控端点

  • 可进行 shutdown(POST 提交,此端点默认关闭)

监控和管理端点说明

  • autoconfig 所有自动配置信息
  • auditevents 审计事件
  • beans 所有 Bean 的信息
  • configprops 所有配置属性
  • dump 线程状态信息
  • env 当前环境信息
  • health 应用健康状况
  • info 当前应用信息
  • metrics 应用的各项指标
  • mappings 应用 @RequestMapping 映射路径
  • shutdown 关闭当前应用(默认关闭)
  • trace 追踪信息(最新的 http 请求)

定制端点信息

  • 定制端点一般通过 endpoints+端点名+属性名 来设置,比如

    • 修改端点 id endpoints.beans.id=mybeans
    • 开启远程应用关闭功能 endpoints.shutdown.enabled=true
    • 关闭端点 endpoints.beans.enabled=false
    • 开启所需端点 endpoints.enabled=false endpoints.beans.enabled=true
  • 定制端点访问根路径 management.context-path=/manage
  • 关闭 http 端点 management.port=-1

自定义 HealthIndicator

自定义步骤:

  • 编写一个指示器实现 HealthIndicator 接口
  • 指示器的名字为 xxHealthIndicator
  • 将其加入容器中
/**
* @Author : parzulpan
* @Time : 2021-01
* @Desc : 自定义健康指示器
*/ @Component
public class MyAppHealthIndicator implements HealthIndicator { @Override
public Health health() {
// 自定义检查方法
// Health.up().build() 代表健康
// Health.down().build() 代表不健康,还可以带上信息
return Health.down().withDetail("msg", "服务异常").build();
}
}

练习和总结

【SpringBoot1.x】SpringBoot1.x 开发热部署和监控管理的更多相关文章

  1. SpringBoot高级篇Ⅸ --- 热部署与监控管理

    一.热部署 在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们不希望重启应用的情况下,程序可以自动部署(热部署). 1.1 模板引擎 在SpringBoot中开发情况 ...

  2. CentOS 6.5安装部署Zabbix监控系统

    CentOS 6.5安装部署Zabbix监控系统 先说一点废话,我没有用centos7做实验,讲真,centos 7我也不常用,喜欢新版本的同学其实可以尝试下,注意一点的就是centos 6.5只支持 ...

  3. prometheus + grafana部署RabbitMQ监控

    prometheus + grafana部署RabbitMQ监控 1.grafana导入dashboards https://grafana.com/dashboards/2121   2.expor ...

  4. Spring Boot 揭秘与实战(八) 发布与部署 - 开发热部署

    文章目录 1. spring-boot-devtools 实现热部署 2. Spring Loaded 实现热部署 3. 模板文件热部署 4. 源代码 Spring Boot 支持页面与类文件的热部署 ...

  5. SpringBoot15 sell01 项目创建、MySQL数据库连接、日志配置、开发热部署、商品信息模块

    项目软件版本说明: jdk: 1.8 springboot: 2.0.1 mysql: 5.7 1 项目创建 创建一个SpringBoot项目即可,创建是勾选 web jpa mysql 这三个依赖就 ...

  6. linux基础 -nginx和nfs代理 开发脚本自动部署及监控

    开发脚本自动部署及监控 1.编写脚本自动部署反向代理.web.nfs: (1).部署nginx反向代理三个web服务,调度算法使用加权轮询:  (2).所有web服务使用共享存储nfs,保证所有web ...

  7. Redis高可用部署及监控

    Redis高可用部署及监控 目录                        一.Redis Sentinel简介 二.硬件需求 三.拓扑结构 .单M-S结构 .双M-S结构 .优劣对比 四.配置部 ...

  8. 基于k8s集群部署prometheus监控ingress nginx

    目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...

  9. 基于k8s集群部署prometheus监控etcd

    目录 基于k8s集群部署prometheus监控etcd 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署prometheus监控 ...

随机推荐

  1. 【题解】「AT4266」[ABC113B] Palace

    AT4266 [ABC113B] Palace 水题解*n translation 有 \(n\) 个地方,第 \(i\) 个地方的海拔为 \(H_i\),该地方的温度为 \(T-H_i \times ...

  2. 我对js数据类型的理解和深浅(copy)的应用场景

    本人毕业一所专科院校,所学专业是计算机应用技术,在大学时对前端有了一定的了解之后,觉得自己对前端的兴趣十分强烈,开始自学前端,一路上也是坎坎坷坷,也有想要放弃的时候,还好坚持了下来,并且从事前端开发已 ...

  3. centos7网卡bond配置--自己另一篇文章的补充

    这篇文章是自己另一篇文章的第二种方法的一个完善的补充 https://www.cnblogs.com/zzf0305/p/9588585.html 1 备份网卡配置文件2 使用nmcli命令配置bon ...

  4. sqli-labs less13-20(各种post型头部注入)

    less-13 POST型双查询注入 less-14 POST型双查询注入 less-15 POST型布尔注入 less-16 POST型布尔注入 less-17 POST型报错注入(updatexm ...

  5. Android全面解析之Activity生命周期

    前言 很高兴遇见你~ 欢迎阅读我的文章. 关于Activity生命周期的文章,网络上真的很多,有很多的博客也都讲得相当不错,可见Activity的重要性是非常高的.事实上,我猜测每个android开发 ...

  6. C语言服务器编程必备常识

    入门 包含了正确的头文件只能编译通过,没链接正确的库链接会报错. 一些常用的库gcc会自动链接. 库的缺省路径/lib /usr/lib /usr/local/lib 不知道某个函数在那个库可以nm ...

  7. Windows下anaconda换源和pip换源

    换源解决下载安装速度慢的问题. 1. anaconda换源 打开cmd命令行,输入 conda config --set showchannelurls yes 会在C:\Users\xx文件夹下生成 ...

  8. [水题日常]Luogu1113 杂务

    这几天又在颓. 我的blog难度目前还比较低,主要面向像我这样子的新手(当然内容也会尽量讲得具体清楚一些)x 如果有错误还请指出~ 写完随笔之后才去翻了一下这题题解之后才注意到这题是有序的 QAQ完全 ...

  9. Hbase系列文章

    Hbase系列文章 HBase(一): c#访问hbase组件开发 HBase(二): c#访问HBase之股票行情Demo HBase(三): Azure HDInsigt HBase表数据导入本地 ...

  10. 十行 Python 代码就提取了韦小宝的身份证信息

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 记得以前有个广告词叫:"学好数理化,走遍天下都不怕",感觉应该再加一句:&quo ...