Tomcat

如何优雅地停止 Spring Boot 应用?

时光怂恿深爱的人放手 提交于 2020-08-06 13:47:19
首先来介绍下什么是优雅地停止,简而言之,就是对应用进程发送停止指令之后,能保证 正在执行的业务操作不受影响,可以继续完成已有请求的处理,但是停止接受新请求 。 在 Spring Boot 2.3 中增加了新特性 优雅停止 ,目前 Spring Boot 内置的四个嵌入式 Web 服务器( Jetty、Reactor Netty、Tomcat 和 Undertow )以及反应式和基于 Servlet 的 Web 应用程序都支持优雅停止。 下面,我们先用新版本尝试下: Spring Boot 2.3 优雅停止 首先创建一个 Spring Boot 的 Web 项目,版本选择 2.3.0.RELEASE ,Spring Boot 2.3.0.RELEASE 版本内置的 Tomcat 为 9.0.35 。 然后需要在 application.yml 中添加一些配置来启用优雅停止的功能: # 开启优雅停止 Web 容器,默认为 IMMEDIATE:立即停止 server: shutdown: graceful # 最大等待时间 spring: lifecycle: timeout-per-shutdown-phase: 30s 其中,平滑关闭内置的 Web 容器(以 Tomcat 为例)的入口代码在 org.springframework.boot.web.embedded.tomcat 的

开发工具

半城伤御伤魂 提交于 2020-08-06 13:19:06
编辑器 Idea Eclipse Webstrom Phycharm Clion Vscode Notepad++ Navicat Xshell Xftp Postman XMind ProcessOn Typora Chrome Git 环境 Redis Tomcat Maven Mysql 其他 showdoc finebi Matlab,Lingo,Stata,SPSS24 Idea插件(Lombok,hutools,EasyCode,jclasslib) 来源: oschina 链接: https://my.oschina.net/codeccb/blog/4474187

Linux下zookeeper+dubbo的安装

流过昼夜 提交于 2020-08-06 12:00:48
建议:自己先在cd /usr/local 下建一个文件夹,将上传的所有解压包放到该文件夹下 mkdir myapp(我这里取名叫myapp) 解压命令最好用 tar -zxvf 一、上传dubbo所需的软件安装包 二、安装jdk 1、安装jdk命令 解压完成后有下面的文件夹 2、进入你jdk的安装(解压)位置,用pwd命令获取jdk的全路径并复制 3、将jdk的路径复制后进入配置环境变量的位置 如果vim无法进入就使用vi 4、配置jdk的环境变量(点击 i 键之后进行输入,编写完成后先按 Esc ),然后保存退出(命令 :wq )前面的冒号不能丢 5、保存后立即使用下面的命令,使配置文件立即生效 Java –version查看jdk版本 三、安装zookeeper服务中心 1、解压 2、修改zoo_sample.cfg为zoo.cfg   进入zookeeper的config目录   使用ll查看里面的文件和下面一致就OK   使用mv命令修改文件名 3、启动命令 进入zookeeper的bin目录下, 使用ll查看 vim如果不行就用vi zookeeper启动命令 : ./zkServer.sh start zookeeper关闭命令: ./zkServer.sh stop zookeeper重启命令: ./zkServer.sh restart zookeeper启动日志为

Servlet

风格不统一 提交于 2020-08-06 11:41:10
一 Servlet简介 Servlet是JavaWeb三大组件之一 运行在服务器上的小程序 Servlet是一个接口 定义了Java类被服务器(Tomcat等等)识别的规则 二 新建一个Servlet 1. 新建一个Web项目 2. 自定义一个类 实现Servlet接口 /** * Servlet快速入门 * Created by Hy on 2020/6/29. */ public class ServletDemo1 implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException {} @Override public ServletConfig getServletConfig() { return null ; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println( "hello world" ); } @Override public String getServletInfo() {

【新手教程】手把手教你搭建腾讯云服务器,图文详细教程

北战南征 提交于 2020-08-06 11:35:15
目 录(本篇字数:1271) 背景 服务器搭建 环境搭建 安装JDK+Tomcat+MySQL驱动 域名绑定 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特地挑了一个便宜的云服务器来用作自己的后台;这不是学生狗没钱嘛,所以我就挑了一个腾讯云服务器。虽说配置很低,但够我们玩就行。因为想写一个电商App,数据总不能从本地数据库来吧,那样也太没水平了!因为自己也会一点Java Web 服务器,索性租了一个云服务器,接口啥的自己写,说干就干吧。 由于本人是在校学生,所以从腾讯那买了一个学生版的服务器。性价比确实很高,价位是10元/月。 注意:我选择的是Windows Server,所以这篇文章是基于Windows平台搭建的。本人对于其他平台不是很了解,虽然接触过Linux,但是并不太会玩,所以搭建也变得更费劲了。索性我们就选熟悉的操作系统吧!(附上我的服务器配置图,这配置你懂的。)这里小小提示一下:我们的服务器是可以改变操作系统的。如果你现在是linux想改成window也是可以的,它会帮你重新安装新的系统,这也意味着数据都清空了。 背景介绍完毕,一个苦逼的android开发者居然还要自己开发服务器,说多的都是泪!那就不多bb了,我们开始搭建环境。 服务器搭建 1、首先,我假设你已经买了腾讯云服务器了(官网购买)

tomcat中使用SessionCookieConfig接口使httpOnly值生效

流过昼夜 提交于 2020-08-06 11:05:18
描述:SessionCookieConfig用来修改会话跟踪的cookie的相关信息,包含name,path,domain,以前名称是固定的必须为JSESSIONID,但是通过该接口可以实现自定义。 背景:   Springboot 2.0 (spring-session-data-redis + spring-boot-starter-web) 需求:   通过cookies中取到的 sessionid 获取到 session 预期效果:   @Autowired   private SessionRepositry sessionRepositry;   ...   Session session = sessionRespositry.findById(sessionId); 真实结果: 获取到的session是null, 然而通过 request.getSession(); 可以获取到session, 说明 session是存在的. 问题追踪后发现问题:   cookie中的sessionId 与 session.getId() 不一样!!! DEBUG:   1. 先看一看SpringSession是如何从Cookie中获取sessionid的! (相关类: org.springframework.session.web.http

JavaWeb项目的部署以及远程调试

大城市里の小女人 提交于 2020-08-06 10:32:48
Linux环境下软件的安装 Linux环境下的程序的安装、更新、卸载和查看。 rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载。 本地程序安装:rpm -ivh 程序名 本地程序查看:rpm -qa 本地程序卸载:rpm -e --nodeps 程序名 yum 命令:相当于可以联网的rpm命令,相当于联网下程序的安装和更新,自动执行rpm命令 JDK的安装 1. 查看当前Linux系统是否已经安装java,输入 rpm -qa | grep -i java 2. 卸载两个openJDK,输入rpm -e --nodeps 要卸载的软件 3. 上传jdk到linux的/usr/local/src/ 路径下 4. 解压jdk,输入:tar -zxvf jdk-8u152-linux-x64.tar.gz 5. 配置jdk环境变量   打开/etc/profile配置文件,输入:vim /etc/profile,添加如下配置 #set java environment JAVA_HOME=/usr/local/src/jdk1.8.0_152 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH vim命令是vi的增强版

linux运维人员必会运维工具

爷,独闯天下 提交于 2020-08-06 09:57:38
linux运维人员必会开源运维工具体系 说明:不同的技术人员,不同的阶段确定知识边界非常重要,否则,就像马拉车,不知道终点在哪,累死也达不到目标。例如拿8K要学多少,拿15K要学多少。一个新手也许只想拿8k结果 各种学, 学了2年,发现都学了,结果8k还是拿不到,归根结底,没边界瞎学,熊瞎子掰苞米,掰一个丢一个,学知识是有周期的,学太多又拖太长和没学差不多,2016年5月更新! 新手必会用 深×××(8-15k) 标记,老鸟必会 深××× + 浅蓝色(15-25K)标记 ============================================== 操作系统: Centos ,Ubuntu,Redhat,suse , Freebsd 网站服务: nginx ,apache , lighttpd, php , tomcat , resin 数据 库: MySQL ,Mysql-proxy, MariaDB , PostgreSQL DB中间件: MyCat , atlas, cobar ,amoeba,MySQL-proxy 代理相关: lvs,keepalived , haproxy , nginx , heartbeat 网站缓存: squid , nginx , varnish NOSQL库: memcached , memcachedb, MongoDB

Tomcat 修改日志路径及日志分割

ぃ、小莉子 提交于 2020-08-06 08:13:57
Tomcat 的 catalina.out 日积月累会越来越大,不好维护。 使用 cronolog 对 日志进行分割 yum install gcc gcc-c++ -y mkdir -p /data/tools && cd /data/tools wget http://cronolog.org/download/cronolog-1.6.2.tar.gz tar -zxvf cronolog-1.6.2.tar.gz -C /usr/local/ cd /usr/local/cronolog-1.6.2/ ./configure make && make install # 查看cronolog安装后所在目录 which cronolog # 一般情况下显示为:/usr/local/sbin/cronolog 修改 tomcat bin 目录下的 catalina.sh # 进入 tomcat bin 目录下 cp catalina.sh catalina.sh.ori vi catalina.sh # 在 446 行出注释 #touch "$CATALINA_OUT" # 在 460 行处开始修改 # 原文件 org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 "&" # 新文件

tomcat关于配置servlet的url-pattern的问题详解

给你一囗甜甜゛ 提交于 2020-08-06 08:13:23
目录 1 servlet url-pattern的匹配问题 1.1 精确匹配 1.2 路径匹配 1.3 后缀匹配 注意:路径和后缀匹配无法同时设置 2 url-pattern中/和/*的区别 3 url-pattern的优先级问题 4 根路径/的匹配问题 tomcat在配置web.xml的时候,servlet是一个比较重要的问题,在这里讨论一下servlet中的几个痛点 servlet url-pattern的匹配问题 url-pattern中 / 和 /* 的区别 url-pattern的优先级问题 根路径 / 的匹配问题 1 servlet url-pattern 的匹配问题 url-pattern 有三种匹配模式,分别是路径匹配、精确匹配、后缀匹配 1.1 精确匹配 <url-pattern> 中配置的项必须与url完全精确匹配。 代码举例👇 <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/kata/detail.html</url-pattern> <url-pattern>/demo.html</url-pattern> <url-pattern>/table</url-pattern> </servlet-mapping> 当在浏览器中输入如下几种url时