SpringBoot高级篇Ⅸ --- 热部署与监控管理
一.热部署
在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们不希望重启应用的情况下,程序可以自动部署(热部署)。
1.1 模板引擎
在SpringBoot中开发情况下禁用模板引擎的cache,页面模板改变ctrl+F9可以重新编译当前页面并生效。
1.2 Spring Loaded
Spring官方提供的热部署程序,实现修改类文件的热部署,需要下载Spring Loaded(项目地址),使用时需要添加运行时参数:-javaagent:C:/springloaded-1.2.5.RELEASE.jar-noverify
1.3 JRebel
收费的一个热部署软件,安装插件使用。
1.4 Spring Boot Devtools(推荐)
引入依赖,使用IDEA的编译或者ctrl+f9,如果用eclipse使用保存即ctrl+s即可实现热部署。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
二.监控管理
通过引入spring-boot-starter-actuator,可以使用Spring Boot为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP、JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等。
由于SpringBoot2.x版本在这一块有所变动所以需要将SpringBoot版本切换为1.5.x版本,防止版本问题影响。
2.1 引入spring-boot-starter-actuator
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.2 通过http方式访问监控端点
监控和管理端点:

2.3 可进行shutdown(POST提交,此端点默认关闭)
可以通过发送"/shutdown"post请求来关闭应用。
2.3.1 开启shutdown关闭应用
endpoints.shutdown.enabled=true
2.3.2 使用postman发送post请求

2.4 定制端点信息
定制端点一般通过endpoints+端点名+属性名来设置。
修改端点id(endpoints.beans.id=mybeans),这样设置以后访问beans端点就需要访问"/mybeans"了
修改端点访问路径(endpoints.beans.path=beans)
开启远程应用关闭功能(endpoints.shutdown.enabled=true)
开启关闭端点(endpoints.beans.enabled=false)
关闭所有端点访问(endpoints.enabled=false)
修改根路径方法(management.context-path=/manage)
修改访问端点的端口(management.port=8181)
2.5 自定义HealthIndicator
访问/health端口,可以看到应用监控的监控状况。例如redis连接是否正常,如果连接地址不正确导致连接不上redis地址,健康状态就会显示down。那么如何自定义一个健康状态指示器呢?
首先,编写一个指示器 实现HealthIndicator接口,并且指示器的名字需要命名为xxxHealthIndicator并加入容器中。
@Component
public class MyHealthIndicator implements HealthIndicator {
@Override
public Health health() {
//自定义检查方法
// return Health.up().build();
return Health.down().withDetail("msg","服务异常").build();
}
}
全部编写好后,重启项目访问"/health"就可以查看该指示器了。

SpringBoot高级篇Ⅸ --- 热部署与监控管理的更多相关文章
- SpringBoot入门篇--热部署
在项目的开发过程中我们难免会涉及到对代码的修改,有bug我们也需要对代码进行修改,这时候我们就需要重启服务器.但是,我们知道的是这个过程是相当的痛苦的,重启服务器涉及到了所有资源的重新加载,过程那是相 ...
- (40). springboot + devtools(热部署)【从零开始学Spring Boot】
我们之前在在()Spring Boot热部署[从零开始学Spring Boot] (http://412887952-qq-com.iteye.com/blog/2291518 )讲过通过使用spri ...
- 【SpringBoot1.x】SpringBoot1.x 开发热部署和监控管理
SpringBoot1.x 开发热部署和监控管理 热部署 在开发中我们修改一个 Java 文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署). ...
- SpringBoot项目设置热部署
记录一个SpringBoot 设置热部署(修改项目之后,项目自动重启)实例 POM.XML 文件 <!-- 配置springBoot项目的热部署启动 --> <dependency& ...
- 玩转 Springboot 2 之热部署(DevTools)
Devtools 介绍 SpringBoot 提供了热部署的功能,那啥是热部署累?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用程序.在IDE中工作时,这可能是一 ...
- springboot热部署与监控
一.热部署 添加依赖+Ctrl+F9 <dependency> <groupId>org.springframework.boot</groupId> <ar ...
- 基于Maven的SpringBoot项目实现热部署的两种方式
转载:http://blog.csdn.net/tengxing007/article/details/72675168 前言 JRebel是JavaEE中比较流行的热部署插件,可快速实现热部署,节省 ...
- springboot之DevTools热部署的简单原理解析
IDEA新建springboot选择DevTools springboot-devtools模块能够实现热部署,添加类.添加方法,修改配置文件,修改页面等,都能实现热部署. 原理就是重启项目,但比手动 ...
- springboot + devtools(热部署)
技术介绍 devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件.属性文件.页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现 ...
随机推荐
- 人生苦短,我用Python(4)
1.创建数值元组: 在Python中,使用tuple()函数直接将range()函数循环出来的结果转换为数值元组. tuple(data) #tuple()函数的基本语法 data表示可以转换为元组的 ...
- 0007 表单标签(form、select)
目标: 能写出最常用的注册类表单 能说出input表单常见属性 现实中的表单,类似我们去银行办理信用卡填写的单子. 如下图 作用: 表单目的是为了收集用户信息. 在我们网页中, 我们也需要跟用户进行交 ...
- 互联网项目中mysql应该选什么事务隔离级别
引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:“讲讲mysql有几个事务隔离级别?” 你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读” 面试官:“为什么mysql ...
- k8s集群———单master节点2node节点
#部署node节点 ,将kubelet-bootstrap用户绑定到系统集群角色中(颁发证书的最小权限) kubectl create clusterrolebinding kubelet-boots ...
- TensorFlow之tf.less()
函数:tf.less less( x, y, name=None ) 以元素方式返回(x <y)的真值. 注意:Less支持广播. 参数: x:张量.必须是下列类型之一:float32,floa ...
- HDU4352 XHXJ's LIS 题解 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4352 题目大意: 求区间 \([L,R]\) 范围内最长上升子序列(Longest increasin ...
- Linux学习笔记(一):什么是挂载?mount的用处在哪?
关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大.奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗. 1.提一句Windows下 ...
- 手动滑稽之golang-vmware-driver广告篇
本来在Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO) 下篇dockerの奥义之后的UEFI补完延迟了... 虽然用efi ...
- 【官方文档翻译】SpringBootActuator生产特性
翻译自 spring-boot 官方文档(版本:2.2.2.RELEASE) Spring Boot包含了许多附加功能,可以帮助您在将应用程序推送到生产环境时监视和管理它.您可以选择使用HTTP端点或 ...
- Docker学习(一)环境准备安装centos7
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机 ...