我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot之如何正确、安全的关闭服务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot之如何正确、安全的关闭服务

SpringBoot正确安全的关闭服务

我们利用远程关闭功能可以实现优雅地关闭指定地服务。

正文

本文依然使用v1.5.8.RELEASE ,讲地是利用actuatorEndpoints实现关闭服务

首先准备一个eureka服务,然后启动他。

然后准备一个eureka客户端服务,客户端的pom除了必要的springboot的web依赖还需要添加依赖如下

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

在eureka客户端服务的application.properties文件开启shutdown endpoint,SpringBoot的endpoints.shutdown.enabled默认是关闭的。

eureka.client.service-url.defaultZone=http://admin:admin@localhost:1111/eureka/
server.port=8762
spring.application.name=eureka-client
#启用shutdown
endpoints.shutdown.enabled=true
#禁用密码验证
endpoints.shutdown.sensitive=false
 
#如果用的2.x版本的 就用注释的那四行配置
#management.endpoints.shutdown.enabled=true
#management.endpoints.health.enabled=true
#management.endpoints.web.base-path=/
#management.endpoints.web.exposure.include=*

配置已经配好,这时可以启动服务了,将他注册在eureka上面,这时我们可以看到下面

然后在终端执行 curl -X POST 127.0.0.1:8762/shutdown ,可以看到message:Shutting down,bye...说明成功关闭了服务

下面笔者要教给大家一种高级使用的方法,做了一个安全的认证,上面关闭服务的缺点大家显而易见,知道服务端口和ip的就能关闭,这种做法很不安全,接下来要在客户端服务配置一下安全认证。

首先在eureka客户端服务的application.properties文件追加配置

eureka.client.service-url.defaultZone=http://admin:admin@localhost:1111/eureka/
server.port=8762
spring.application.name=eureka-client
management.security.enabled=true
#启用shutdown
endpoints.shutdown.enabled=true
#禁用密码验证
endpoints.shutdown.sensitive=true
#验证用户名
security.user.name=admin
#验证密码
security.user.password=admin
#角色
management.security.role=SUPERUSER
#指定shutdown endpoint的路径
endpoints.shutdown.path=/custompath
#也可以统一指定所有endpoints的路径`management.context-path=/manage`
#指定管理端口和IP
management.port=8081
management.address=127.0.0.1

我们使用了security,就需要在pom添加依赖

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

大功告成,是不是很简单,下面启动你的客户端服务,这里我就不贴一些多余的图片了,成功注册到eureka上面了,和上面的图一样。

接下来使用终端访问 curl -X POST -u admin:admin 127.0.0.1:8081/custompath

看见了你的服务又和你say byebye了吧! 

这个命令  curl -X POST -u admin:admin 127.0.0.1:8081/custompath  每一个位置对应的参数值大家可以看application.properties文件分别对应了哪些配置就明白了。

SpringBoot2.0.4关闭程序,我走过的那些坑

首次接触springboot项目,在本地测试的时候,发现不知道怎么关闭程序,虽然后来不得不用杀死进程的方式解决,但总觉得这种方式太简单粗暴。就准备问问度娘别人都是怎么做的。

结果普遍答案是:

步骤:

第一步:引入依赖

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

第二步:application.properties配置

 
# 启用shutdown
endpoints.shutdown.enabled=true
 
# 禁用密码验证
endpoints.shutdown.sensitive=false

第三步:http://IP:端口号/actuator/shutdown或者http://IP:端口号/shutdown

结果:

404!!!!!!!

为什么总是404?

后来幡然醒悟,别人都是springboot 1.X,而我的是2.X。(springboot变化好大o(╥﹏╥)o)

接着,我继续查2.0以上版本怎么解决,结果大多数是在启动类加一推代码……可能是我不会用吧,反正没成功。继续找……

后来看到大多数人又说,下面的方式配置:

management:
  endpoints:
    web:
      exposure:
        include: "*"

然后看日志,发现所有的端点都打开了,就shutdown没打开o(╥﹏╥)o

实在找不到相关博客了,就去官网找答案

官网链接https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

原来人家默认是关着的,那就打开呀!于是我以为发现了新大陆,就去打开,据需看官网,看到这样一句。

management.endpoint.shutdown.enabled=true

 添加上去,果然成功!

但是,过程中我曾经写成了这样:

##错误写法!!!!!!!!!!!!!!!!!
management:
  endpoints:
    web:
      exposure:
       include: "*" 
    shutdown:
      enabled: true

注意哈,这是错误写法,我把endpoints当成了endpoint!!!他们可是不一样的啊! 

最终写法:

management:
  endpoints:
    web:
      exposure:
       include: shutdown 
    #注意下面这个位置!!
  endpoint:
    shutdown:
      enabled: true

注:include后面可以添加你想用到的端点 。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot之如何正确、安全的关闭服务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot之如何正确、安全的关闭服务

这篇文章主要介绍了SpringBoot之如何正确、安全的关闭服务问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-09

SpringBoot之怎么正确、安全的关闭服务

本篇内容主要讲解“SpringBoot之怎么正确、安全的关闭服务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot之怎么正确、安全的关闭服务”吧!SpringBoot正确安全的关
2023-07-05

如何正确、安全地关闭MySQL

目录一、介绍二、正文1、关闭mysql的基本方法2、关闭MySQL前的准备工作3、优雅地关闭MySQL4、遇到MySQL无法正常关闭的情况三、小结一、介绍MySQL是一个广泛使用的开源关系型数据库管理系统,由于其高性能、稳定性和可靠性,被
2023-09-24

如何关闭云服务器安全服务?

1.登录云服务器管理控制台首先,你需要登录到你的云服务器管理控制台。这可能需要你提供你的用户名和密码,以及其他身份验证信息。2.导航到安全服务设置一旦你成功登录到管理控制台,你需要导航到安全服务设置页面。这个页面通常可以在控制台的菜单或导航栏中找到。你可能需要查找类似于“安全”、“服务”或“设置”的选项。3.关闭云服务器安全服务在安全服务设置页面,你应该能够找到一个开关或复选框,用于启用或禁用云服务器安...
2023-10-27

服务器安全补丁:如何正确安装和配置?

服务器安全补丁是维护服务器安全的重要手段,本文将介绍如何正确安装和配置服务器安全补丁,以确保服务器的安全运行。
服务器安全补丁:如何正确安装和配置?
2024-02-27

云服务器安全服务的描述正确的是

云服务器安全服务是一种为云计算应用程序提供安全保障的服务。它可以帮助用户控制和管理他们在云服务器上使用的应用程序,确保其数据安全。该服务使用现代化的加密算法和身份验证机制来确保用户的敏感数据得到保护,并对用户的应用程序进行审计和跟踪。云服务器安全服务的目的是保护用户数据的安全,防止黑客入侵和其他威胁对其造成破坏。它使用多种安全技术来保护用户的应用程序和数据,例如防火墙、入侵检测和日志记录系统、
2023-10-26

如何确保云服务器的安全

云服务器安全保障全指南确保云服务器安全至关重要。本指南涵盖最佳实践,包括强密码、定期更新、防火墙、加密、访问控制、安全扫描、云安全组、漏洞管理、灾难恢复计划和持续监控。另外,云提供商也应承担责任,提供安全的数据中心、网络安全、合规认证和客户支持。通过实施这些措施,企业可以提高云服务器的安全性,保护数据免受网络攻击和数据泄露。
如何确保云服务器的安全
2024-04-12

如何确保云服务器的安全

确保云服务器的安全可以采取以下措施:使用强密码:确保云服务器的密码是复杂且难以破解的,包括字母、数字和特殊字符的组合。及时更新系统和软件:定期检查并更新云服务器上的操作系统和软件,以修复已知的漏洞和安全问题。启用防火墙:配置云服务器上的防火
如何确保云服务器的安全
2024-04-09

云服务器安全服务的描述正确的是什么

云服务器安全服务是指一种安全软件、服务或解决方案,旨在保护云服务器用户的数据和应用程序免受未经授权的访问、窃取、破坏、泄露、非授权使用、恶意攻击和其他安全威胁。这项服务通常包括以下几个方面:安全策略设置:这包括对用户账户、资源权限、网络安全、数据加密、防病毒等安全策略进行全面设置和审核。安全监控:这包括对服务器日志、应用程序日志等进行实时监控和分析,以识别恶意行为并及时采取行动。漏洞评估
2023-10-26

如何优雅、安全的关闭MySQL进程

前言 本文分析了 mysqld 进程关闭的过程,以及如何安全、缓和地关闭 MySQL 实例,对这个过程不甚清楚的同学可以参考下。 关闭过程 1、发起 shutdown,发出 SIGTERM 信号 2、有必要的话,新建一个关闭线程(shutd
2022-05-12

云服务器安全服务的描述正确的是哪一项

云服务器安全服务是指一种安全防御服务,用于保护云服务器用户的数据和应用程序免受未经授权的访问、攻击、滥用和数据泄露等风险。该服务使用多种安全技术,例如数据加密、身份验证、访问控制、日志审计和监控等。具体来说,云服务器安全服务可以包括以下一些关键组件和功能:数据加密:加密存储在云服务器上的数据,确保只有授权用户能够访问和操作。身份验证:通过验证用户身份并强制执行某些行为来保护数据的机密性和
2023-10-26

云服务器安全服务的描述正确的是什么意思

云服务器安全服务是指一种用于保护云服务器用户数据和应用程序的安全机制。它提供了多种安全特性,包括身份验证和访问控制、加密传输和备份、数据加密等等。以下是云服务器安全服务的描述正确的是什么意思:身份验证:云服务器需要验证用户的身份,确保没有未经授权的访问者能够接入和访问数据。这可能包括使用多因素身份验证(如AES)、使用强密码和双因素身份验证来保护用户的个人信息。访问控制:提供访问控制列表(ACL)可以确保只...
2023-10-27

云服务器安全服务的描述正确的是什么内容

云服务器安全服务是指向云服务器提供一系列安全措施,以保护云服务器用户的数据和系统免受恶意破坏、安全威胁、网络欺诈等安全问题的攻击。这些服务提供了以下几类安全措施:访问控制:使用强密码、弱密码、定期更换密码等方式限制对云服务器的访问。加密:使用高强度的加密措施来保护云服务器用户的敏感信息,如SSL加密、AES加密等。身份验证:使用多因素身份验证、双因素身份验证等方法实现对云服务器用户身份的验证。监控和日志...
2023-10-27

亚马逊云服务器安全性描述正确的是

访问控制:亚马逊云服务器采用强大的访问控制功能,确保只有授权的用户可以访问服务器和数据。数据加密:亚马逊云服务器使用SSL加密技术,确保客户的数据在传输过程中受到保护。安全漏洞管理:亚马逊云服务器提供多种漏洞管理功能,如密码策略、身份验证和访问控制,以防止未经授权的访问和安全漏洞。安全更新:亚马逊云服务器定期更新和维护系统,以确保最新的安全补丁和安全措施得到实施。安全事件响应:亚马逊云服务器提供全...
2023-10-27

云服务器安全服务的描述正确的是什么意思啊

云服务器安全服务可以通过多种方式提供,包括:防火墙:云服务器可以与网络隔离,以确保客户不会受到恶意攻击。防火墙可以监视网络流量,并在发现异常活动时发送警报。入侵检测系统:云服务器可以部署入侵检测系统,以便在发现异常活动时及时向管理员发送警报。入侵检测系统可以检测并响应网络攻击、病毒、木马和其他恶意软件。安全补丁管理:云服务器可以自动更新客户的应用程序和服务器软件,以确保它们受到最新的安全漏洞和攻击...
2023-10-27

阿里云服务器的安全性如何确保你的数据安全?

在当今数字化时代,服务器安全问题日益重要。特别是对于那些依赖云服务的公司和组织来说,他们的数据和隐私都可能受到威胁。然而,最近的一些报道显示,阿里云服务器的安全性似乎受到了一些质疑。那么,阿里云服务器的安全性如何呢?我们又该如何确保我们的数据安全呢?一、阿里云服务器的安全性阿里云是中国最大的云计算服务提供商,其服
阿里云服务器的安全性如何确保你的数据安全?
2023-12-18

云服务器安全服务的描述正确的是哪一项内容

云服务器安全服务是指向云服务器提供方提供的一系列安全服务,这些服务可以帮助保护云服务器上的资源和数据,以防止未经授权的访问、恶意软件、欺诈行为等安全风险。这些服务包括但不限于:防火墙(Firewall):保护云服务器免受恶意软件和其他安全威胁的攻击。安全套接层(SecureEncryptionLayer):保护云服务器免受身份盗用和其他安全威胁的攻击。数据加密(DataEncryption):保护云服务器免受数据泄露和其他恶意攻击。漏洞扫描(Sec...
2023-10-27

如何彻底关闭Vista安全中心的提示

本篇内容介绍了“如何彻底关闭Vista安全中心的提示 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Windows Vista用户是不是对它
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录