【SpringBoot1.x】SpringBoot1.x 开发热部署和监控管理
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=falseendpoints.beans.enabled=true
- 修改端点 id
- 定制端点访问根路径
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 开发热部署和监控管理的更多相关文章
- SpringBoot高级篇Ⅸ --- 热部署与监控管理
一.热部署 在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们不希望重启应用的情况下,程序可以自动部署(热部署). 1.1 模板引擎 在SpringBoot中开发情况 ...
- CentOS 6.5安装部署Zabbix监控系统
CentOS 6.5安装部署Zabbix监控系统 先说一点废话,我没有用centos7做实验,讲真,centos 7我也不常用,喜欢新版本的同学其实可以尝试下,注意一点的就是centos 6.5只支持 ...
- prometheus + grafana部署RabbitMQ监控
prometheus + grafana部署RabbitMQ监控 1.grafana导入dashboards https://grafana.com/dashboards/2121 2.expor ...
- Spring Boot 揭秘与实战(八) 发布与部署 - 开发热部署
文章目录 1. spring-boot-devtools 实现热部署 2. Spring Loaded 实现热部署 3. 模板文件热部署 4. 源代码 Spring Boot 支持页面与类文件的热部署 ...
- SpringBoot15 sell01 项目创建、MySQL数据库连接、日志配置、开发热部署、商品信息模块
项目软件版本说明: jdk: 1.8 springboot: 2.0.1 mysql: 5.7 1 项目创建 创建一个SpringBoot项目即可,创建是勾选 web jpa mysql 这三个依赖就 ...
- linux基础 -nginx和nfs代理 开发脚本自动部署及监控
开发脚本自动部署及监控 1.编写脚本自动部署反向代理.web.nfs: (1).部署nginx反向代理三个web服务,调度算法使用加权轮询: (2).所有web服务使用共享存储nfs,保证所有web ...
- Redis高可用部署及监控
Redis高可用部署及监控 目录 一.Redis Sentinel简介 二.硬件需求 三.拓扑结构 .单M-S结构 .双M-S结构 .优劣对比 四.配置部 ...
- 基于k8s集群部署prometheus监控ingress nginx
目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...
- 基于k8s集群部署prometheus监控etcd
目录 基于k8s集群部署prometheus监控etcd 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署prometheus监控 ...
随机推荐
- 题解-CF1389F Bicolored Segments
题面 CF1389F Bicolored Segments 给 \(n\) 条线段 \([l_i,r_i]\),每条有个颜色 \(t_i\in\{0,1\}\),求最多选出多少条线段,使没有不同颜色的 ...
- centos7 mysql 自动补全
1 yum -y install epel-release #配置erel源 2 yum -y install python-pip 3 pip install mycli #用pip安装 可能会出现 ...
- VMware Workstation 16中安装macOS Big Sur,AMD版
VMware Workstation 16中安装macOS Big Sur,AMD版 目录 VMware Workstation 16中安装macOS Big Sur,AMD版 准备阶段 步骤一:安装 ...
- OpenShift添加应用健康检查功能
什么是健康检查? 对于部署成功的应用来说,通过访问接口.执行特定命令等方式判断应用是否存活.正常的方式称为健康检查. 在 OpenShift 或 Kubernetes 中,健康检查都有两个探针,分别是 ...
- WIN7环境下配置vscode c++环境
目录 安装vscode 添加中文环境支持 添加c++支持 配置c++环境 安装MinGW 配置MinGW环境变量 配置vscode launch文件配置 task文件配置 可能出现的问题 安装vsco ...
- svn add . 报错,不能add全部,因为有一些文件已经在版本库中了
svn add 目录名 --force SVN commit -m '' 目录名
- 附029.Kubernetes安全之网络策略
目录 环境构建 基础环境构建 网络测试 安全策略 策略配置 策略测试 ingress方向测试 egress方向测试 to和from行为 默认策略 环境构建 基础环境构建 [root@master01 ...
- c# 递归 yield关键字的用法
1.yield实现的功能 yield return: 先看下面的代码,通过yield return实现了类似用foreach遍历数组的功能,说明yield return也是用来实现迭代器的功能的. u ...
- .netcore3.1——应用AutoMapper
多层架构中存在多种模型,如视图模型ViewModel,数据传输对你DTO,ORM对象等,这些数据在层与层之间进行传输必须涉及类型之间的转换. AutoMapper是一个对象-对象映射器,作用是通过设置 ...
- webform中DropdownList绑定多个字段
说明 ListItem中有Attributes属性,手动创建一个自定义属性,赋值需要绑定的字段的值. 这样的话,前台js也可以获取到,能够显示到前台html,进行控制. 代码 foreach(Data ...