Tomcat

如何修改 docker 容器的端口映射

血红的双手。 提交于 2020-11-18 14:45:01
问题背景 docker run -d -p 9999 :8080 -i --name tomcat7 tomcat :7 创建容器时,指定了端口映射(-p) 如果容器运行之后发现端口需要改怎么办? 当前是访问 9999 端口 删除原有容器,重新创建新的容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 8888 :8080 -i --name tomcat7 tomcat :7 重新指定需要映射的端口 优点 简单粗暴,在测试环境用的更多 缺点 如果是数据库、服务器相关的容器,创建新的容器,又得重新配置相关东西了 修改容器配置文件(重点) 暂停 Docker 服务 systemctl stop docker 进入 Docker 容器配置文件目录下 cd / var /lib/docker/containers/ls 进入某个容器的配置文件目录下 容器ID 就是文件夹名称,可通过 docker ps -aq 来查看,不过这是缩写,对照起来看就行 cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633ls 修改 hostconfig.json vim hostconfig.json 输入 / ,搜索映射的端口(9999) 修改端口值就行了 修改完后 :wq

Tomcat IO阻塞异常

核能气质少年 提交于 2020-11-18 07:22:06
tomcat的maxThreads、acceptCount(最大线程数、最大排队数) tomcat 的Connector配置如下 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="800" acceptCount="1000"/> 其中最后两个参数意义如下: maxThreads :tomcat起动的最大线程数,即同时处理的任务个数,默认值为200 acceptCount :当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100 这两个值如何起作用,请看下面三种情况 情况1:接受一个请求,此时tomcat起动的线程数没有到达maxThreads,tomcat会起动一个线程来处理此请求。 情况2:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,tomcat会把此请求放入等待队列,等待空闲线程。 情况3:接受一个请求,此时tomcat起动的线程数已经到达maxThreads,等待队列中的请求个数也达到了acceptCount,此时tomcat会直接拒绝此次请求,返回connection refused maxThreads如何配置 一般的服务器操作都包括量方面:1计算(主要消耗cpu),2等待

使用IntelliJ IDEA配置Tomcat(入门)

大兔子大兔子 提交于 2020-11-18 05:01:00
原文 一、下载Tomcat 1、进入官网http://tomcat.apache.org/,选择download,下载所需Tomcat版本。 此处我们选择下载最新版本Tomcat 9。 注意有zip和exe两种格式的,zip(64-bit Windows zip(pgp,md5,sha1))是免安装版的,exe(32-bit/64-bit Windows Service installer(pgp,md5,sha1))是安装版。同时观察自己的电脑是64位系统还是32位系统。 此处选择下载zip版; 下载后直接解压缩, 2、找到目录bin下的startup.bat,点击启动Tomcat;shutdown.bat:关闭Tomcat。 3、启动Tomcat后,打开浏览器,键入 http://localhost:8080 进入如下页面则表示安装成功: 二、Tomcat环境变量配置 1、安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置"; 2、选择"高级"选项卡,点击"环境变量"; 然后就会出现如下图所示的画面: 3、在”系统变量“中添加系统变量CATALINA_BASE,CATALINA_HOME; 变量名:CATALINA_BASE 变量值:D:\tools\apache-tomcat-8.5.4 //Tomcat安装目录 变量名:CATALINA_HOME 变量值:D:

IDE-IntelliJ IDEA 主题、字体、编辑区主题、文件编码修改、乱码问题

瘦欲@ 提交于 2020-11-18 04:57:45
主题修改 上图标注 1 所示为 IntelliJ IDEA 修改主题的地方,可以通过打开左上角的File -> Setting。在 Windows 系统上 IntelliJ IDEA 默认提供的主题有四套: Darcula 、 IntelliJ 、 Windows 、 Alloy. IDEA Theme 。除了 Darcula 是黑色主题,其他三套都是以白色为背景的。 其他操作系统上不一定会也有四套主题的,主题的选择上大家根据自己喜好即可。改变主题需要重启 IntelliJ IDEA 方可看到效果。 字体修改 主题字体修改 如上图标注 1 所示,IntelliJ IDEA 主题字体的修改要先勾选 Override default fonts by 。默认 IntelliJ IDEA 是不推荐修改的,但是由于字体是有分包含中文和不包含中文之分的,一般使用英文的国家是不需要额外担心乱码问题的,而我们需要。 字体的审美上每个人不一样,但是如上一段说的,这里的字体修改是需要知道一个前提的,那就是你选择的那个字体必须含有中文,比如微软雅黑和宋体这类是包含中文的,而 Courier New 和 Monaco 这类只是单纯的英文字体。 如果你选择的字体不包含中文,那可能会在很多位置上出现类似 口口口口口 这样的乱码问题,比如文件名含有中文、字体是中文名字的都会变成 口口口口口 。 在修改

spring-cloud网关报400 Bad Request问题排查

依然范特西╮ 提交于 2020-11-17 22:23:38
问题现象 api访问时,如果访问过快,第二次访问大概率报Bad Request。 我们对网关做的操作 记录请求报文,打印日志。 对请求进行验签。 验签不通过,打回。验签通过,提取真正的请求参数。 根据请求报文和数据库配置,路由到后端的微服务,并附带真正的请求参数。 问题排查 排查网关日志,未发现异常现象。网关只打印了HTTP的报文体,未打印请求头。 排查微服务日志,发现tomcat接收的请求日志,HTTP请求头丢失了一部,所以Bad Request是微服务报出来的。 由此定位到网关出问题了。查看Netty的HttpServerCodec。发现请求头是一定会写的,为什么会丢失,怀凝是ByteBuf出问题了,导致一部分内容未写进去。 检查 ByteBuf并添加日志,确认ByteBuf没有问题。 由此判定是 tomcat解析出问题了,一部分请求头未解析到。 继续查看tomcat日志,无意中发现content-length与实际内容不一致。由此猜想,可能是对网关进行转发的时候,改变了网关的请求内容,而content-length是已经解析好的。所以需要重设content-length。 String content = toData.getString("content"); byte[] content4Byte = content.getBytes(StandardCharsets

Docker学习笔记之常见 Dockerfile 使用技巧

北城以北 提交于 2020-11-17 07:14:22
0x00 概述 在掌握 Dockerfile 的基本使用方法后,我们再来了解一些在开发中使用 Dockerfile 的技巧。这一小节的展现方式与之前的略有不同,其主要来自阅读收集和我自身在使用中的最佳实践。也许这里面介绍的不是最为标准或是合乎规范的方式,但一定是能够直接帮助大家在开发中使用 Docker 提升生产力的方式。下面就让我们来看看这些关于 Dockerfile 的使用技巧吧。 0x01 构建中使用变量 在实际编写 Dockerfile 时,与搭建环境相关的指令会是其中占有大部分比例的指令。在搭建程序所需运行环境时,难免涉及到一些可变量,例如依赖软件的版本,编译的参数等等。我们可以直接将这些数据写入到 Dockerfile 中完全没有问题,有问题的是这些可变量我们会经常调整,在调整时就需要我们到 Dockerfile 中找到它们并进行更改,如果只是简单的 Dockerfile 文件尚且好说,但如果是相对复杂或是存在多处变量的 Dockerfile 文件,这个工作就变得繁琐而让人烦躁了。 在 Dockerfile 里,我们可以用 ARG 指令来建立一个参数变量,我们可以在构建时通过构建指令传入这个参数变量,并且在 Dockerfile 里使用它。 例如,我们希望通过参数变量控制 Dockerfile 中某个程序的版本,在构建时安装我们指定版本的软件,我们可以通过 ARG

Docker学习笔记之Dockerfile

三世轮回 提交于 2020-11-17 06:34:15
  Dockerfile的编写格式为<命令><形式参数>,命令不区分大小写,但一般使用大写字母。Docker会依据Dockerfile文件中编写的命令顺序依次执行命令。Dockerfile文件中,命令总是以FROM开始。如无FROM命令或FROM命令之前有其它命令,则无法创建镜像。此外,各个命令是独立运行的,即使用RUN cd /home 转移目录,也不会对后面的命令产生影响。   创建镜像时,在Dockerfile所在目录下执行docker build命令。如根据Dockerfile创建一个名为example的镜像: sudo docker build --tag example . #创建镜像   1. .dockerignore   所有与Dockerfile同目录下的文件都称为“上下文”。在创建镜像时,上下文都会被传送到Docker守护进程,所以有必要设置不相关的文件排除在外。如: >>.dockerignore文件 .git hello.txt   2. FROM   FROM用于设置以哪个镜像为基础镜像。Dockerfile创建的镜像是以已有的镜像为基础的。如下所示: >>Dockerfile文件 FROM ubuntu:latest   命令的使用格式为FROM <镜像><标签>或FROM <镜像>。   3. MAINTAINER