Tomcat

【赵强老师】管理Docker镜像

穿精又带淫゛_ 提交于 2020-10-06 05:16:55
一、什么是Docker的镜像 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的Docker有以下几个部分组成: Docker Client客户端 Docker Daemon守护进程 Docker Image镜像 Docker Container容器 镜像是一个模板,是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上。镜像是容器运行的基石。可以从镜像仓库中获取做好的镜像。镜像仓库可以使用公有仓库(https://hub.docker.com/ ),也可以搭建自己私有的镜像仓库。 下图展示的是Docker镜像的系统结构。其中,镜像的最底层必须是一个称为启动文件系统(bootfs)的镜像,用户不会与这一层直接打交道。bootfs的上层镜像就是我们熟知的根镜像。 镜像的本质是磁盘上一系列文件的集合,如下图所示: 二、使用和访问Docker官方公有的镜像仓库 使用search命令搜索仓库中的镜像,如:mysql docker search mysql 结果如下: 使用pull命令获取镜像,如:mysql的镜像 docker pull mysql

开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程

独自空忆成欢 提交于 2020-10-06 03:14:22
告警 正在开会,突然钉钉告警声响个不停,同时市场人员反馈客户在投诉系统登不进了,报504错误。查看钉钉上的告警信息,几台业务服务器节点全部报CPU超过告警阈值,达100%。 赶紧从会上下来,SSH登录服务器,使用 top 命令查看,几个Java进程CPU占用达到180%,190%,这几个Java进程对应同一个业务服务的几个Pod(或容器)。 定位 使用 docker stats 命令查看本节点容器资源使用情况,对占用CPU很高的容器使用 docker exec -it <容器ID>bash 进入。 在容器内部执行 top 命令查看,定位到占用CPU高的进程ID,使用 top -Hp <进程ID> 定位到占用CPU高的线程ID。 使用 jstack <进程ID> > jstack.txt 将进程的线程栈打印输出。 退出容器, 使用 docker cp <容器ID>:/usr/local/tomcat/jstack.txt ./ 命令将jstack文件复制到宿主机,便于查看。获取到jstack信息后,赶紧重启服务让服务恢复可用。 5.将2中占用CPU高的线程ID使用 pringf '%x\n' <线程ID> 命令将线程ID转换为十六进制形式。假设线程ID为133,则得到十六进制85。在jstack.txt文件中定位到 nid=0x85的位置,该位置即为占用CPU高线程的执行栈信息

Tomcat源码分析(2)-连接器Connector整体架构

泄露秘密 提交于 2020-10-06 03:09:18
在 上一篇 博文中,主要分析了tomcat的整体架构,通过上一篇的分析可以知道,tomcat主要有两部分组成,分别为连接器(Connector)和容器(Container)。本文介绍连接器(Connector)。 一、Connector的主要功能 连接器主要用于对外交流,它负责接收外部的请求,然后把请求转交给container进行处理。主要功能如下: 监听网络请求、接受字节流 根据应用层协议(HTTP or AJP)把接受到字节流转换成TomcatRequest 把TomcatReqeust转换成ServletRequest 调用容器Servlet,得到ServletResponse 把ServletRespone转换成TomcatResponse 把TomcatResponse转化成字节流,返回给浏览器 基于以上详细分析可知Connector的主要功能可以抽象为三点 网络监听 协议解析处理 协议屏蔽转换(tomcatRequest到servletReqeust转换,servletResponse到tomcatResponse的转换) 二、Connetor内部的组件 基于上述的分析,接下来具体看tomcat connector的代码组件,主要有三个 Endpoint-用于网络监听 Processor-用于协议解析处理 Adapter-用于转换

第01课:Spring Boot 入门

我的未来我决定 提交于 2020-10-06 02:35:29
什么是 Spring Boot Spring Boot 是由 Pivotal 团队提供的基于 Spring 的全新框架,其设计目的是为了简化 Spring 应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而使开发者无需定义大量的 XML 配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域成为领导者。 Spring Boot 并不重复造轮子,而且在原有 Spring 的框架基础上封装了一层,并且它集成了一些类库,用于简化开发。换句话说,Spring Boot 就是一个大容器。 下面几张图展示了 官网 上提供的 Spring Boot 所集成的所有类库: Spring Boot 官方推荐使用 Maven 或 Gradle 来构建项目,本教程采用 Maven。 第一个 Spring Boot 项目 大多数教程都是以 Hello World 入门,本教程也不例外,接下来,我们就来搭建一个最简单的 Spring Boot 项目。 首先创建一个 Maven 工程,请看下图: 然后在 pom.xml 加入 Spring Boot 依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent<

普歌-云言团队-Spring Boot入门:环境搭建Spring Boot HelloWorld

Deadly 提交于 2020-10-06 01:52:48
普歌-云言团队-Spring Boot入门:环境搭建Spring Boot HelloWorld 前言:SpringBoot 是来简化Spring应用开发, 约定大于配置, 去繁从简, just run就能创建一个独立的, 产品级别的应用 我们以一个功能为例: 浏览器发送一个Hello请求,服务器接收请求并处理, 响应Hello World字符串 1. 创建一个maven工程 2.导入springboot相关依赖 ```java < parent > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - parent < / artifactId > < version > 1.5 .9 . RELEASE < / version > < / parent > < dependencies > < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - web < / artifactId > < / dependency > < / dependencies > 注意:

Tomcat无需输入项目名,直接用域名访问项目

元气小坏坏 提交于 2020-10-06 01:51:55
问题 在Tomcat上开发Web应用,通常是将应用放置Tomcat主目录下webapps,然后在浏览器地址栏输入域名+应用名(如 http://localhost:8080/app )对应用进行访问。 为了方便开发,打算直接用域名访问项目。例如,在浏览器地址栏输入 http://localhost:8080 ,便可 app 应用进行访问。 解决 打开在Tomcat主目录下 conf/sever.xml 文件,在 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 标签添加如下子标签: <Context path="" docBase="/*app在文件系统中的绝对地址*/" debug="0" reloadable="true" /> 配置保存后,重启Tomcat,在浏览器地址栏输入 http://localhost:8080 ,便可 app 应用进行访问 参考资料 Tomcat不需要输入项目名便可访问项目(直接用域名或者ip) 来源: oschina 链接: https://my.oschina.net/jallenkwong/blog/4387132

点击劫持漏洞:使用X-Frame-Options 解决方法(应用tomcat)

只愿长相守 提交于 2020-10-05 09:07:30
点击劫持漏洞:使用X-Frame-Options 解决方法(应用tomcat) 参考文章: (1)点击劫持漏洞:使用X-Frame-Options 解决方法(应用tomcat) (2)https://www.cnblogs.com/wdnnccey/p/6476518.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4267218/blog/4659833

Tomcat源码Idea maven启动

你。 提交于 2020-10-05 06:28:02
一、下载tomcat源码 https://github.com/apache/tomcat/tree/8.5.x 二、建立pom 1 <? xml version="1.0" encoding="UTF-8" ?> 2 < project xmlns ="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > 5 6 < modelVersion > 4.0.0 </ modelVersion > 7 < groupId > org.apache.tomcat </ groupId > 8 < artifactId > Tomcat8.5 </ artifactId > 9 < name > Tomcat8.0 </ name > 10 < version > 8.0 </ version > 11 12 < build > 13 < finalName > Tomcat8.5 </ finalName > 14 < sourceDirectory >

设置tomcat不在eclipse里面启动

血红的双手。 提交于 2020-10-04 13:39:26
设置在外部启动: D:\DevelopSoftware\tomcat8.5.54\conf\Catalina\localhost 在这个目录下面加一个xml文件docBase指向项目的webroo即可。 <Context reloadable="true" docBase="D:\WorkSpace\crm_10000\WebRoot"/> xml文件名就是项目名。xx.xml.启动就是localhost:port/xx 来源: oschina 链接: https://my.oschina.net/u/4271883/blog/4286558

2020全网最全的软件测试linux面试题及参考答案,赶紧收藏!

爱⌒轻易说出口 提交于 2020-10-04 04:35:21
一、前言: 2020非常全的软件测试linux面试题及参考答案 作为一名软件测试工程师,我相信大部分的人都和Linux打过交道,因为我们的服务器一般都是装的Linux操作系统,包括各种云服务器也都是用的Linux,目前主流是CentOS7,那么对于一个测试工程师来说,我们需要掌握哪些命令呢?我将我了解到的命令列举一下,仅供大家参考 二、Linux最最最常用的面试题及答案 2020非常全的软件测试linux面试题及参考答案 1、你之前在公司使用linux命令做什么? 我们公司之前测试系统搭建在linux上,使用linux搭建和升级测试环境、查香后台日志等 2、在之前公司,测试环境使用的是哪个linux版本? Centos7或更高版本(命令几乎 一致,可以通用) 3、linux 下安装软件有那些方式? 常用的有4种方式:绿色安装(解压即可使用)、yum安装(联网安装)、rpm包安装(类似exe文件安装)、源码编译安装(gcc、perl 等) 4、在之前使用linux过程中,使用什么工具远程连接? 可以讲使用过的,一般常用xmanager,它集成了xshell xftp 5、vi编辑器如何使用? Vi:接文件名参数进入文件内容界面,可进行编辑 i: 切换到编辑模式 esc: 切换到命令模式 /+搜索内容 :进行向下披索操作 set nu : 给每行加行号 跳转到文本开头: $