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下的文件(包括类文件.属性文件.页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现 ...
随机推荐
- VRChat之转移地图缓存
我的电脑是win10,win10的缓存地址和名称可能和win7的名字有所不同. win10缓存路径:C:\Users\Administrator\AppData\LocalLow\VRChat\VRC ...
- Java核心技术·卷 II(原书第10版)分享下载
Java核心技术·卷 II 内容介绍 Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与<Java编程思想>齐名,10余年 ...
- rest_framework框架下的Django声明和生命周期
rest_framework框架下的Django声明和生命周期 Django声明周期(request) 客户端发起请求 请求经过wsgi wsgi: 是一个协议----web服务网关接口,即在web服 ...
- `docker数据持久化volume和bind mounts两种方式
将数据从宿主机到容器的三种方式: ,volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)保存数据的最佳方式 ,bind mounts 将宿主机上的任 ...
- 使用Django进行后端开发
目录 更换pip源 搭建虚拟环境 项目目录设置 项目相关配置 更换pip源 更换pip源 搭建虚拟环境 搭建虚拟开发环境 项目目录设置 项目目录设置 项目相关配置 项目相关配置
- Javascript小白经典题型(一)
1. 输出是什么? function sayHi() { console.log(name) console.log(age) var name = 'Lydia' let age = 21 } sa ...
- centos7 编译安装 php7.4
1. 下载安装编译工具 yum groupinstall 'Development Tools' 2.安装依赖包 yum install libxml2 libxml2-devel openssl o ...
- Java中数组的使用
1.声明数组 1.1声明一维数组 声明一维数组有下列两种格式: 数组的元素类型 数组名字[ ]; 数组的元素类型[ ] 数组名字 1.2声明二维数组 声明二维数组有下列两种格式: 数组的 ...
- matlab写入excel数据
使用xlswrite 可以help xlswrite查看用法 xlswrite(filename,A)xlswrite(filename,A,sheet)xlswrite(filename,A,xlR ...
- 让vue-router渲染为指定的标签
<router-link :to="{name:'cart'}" tag="li"> cart </router-link> 在rout ...