Tomcat笔试题!
1、企业常见的中间件产品有哪些?
商业:nginx企业版,jobss
开源:nginx社区版,tomcat,apache
2、Tomcat软件早期名字及其主要作用?
Tomcat的前身为Catalina、Catalina是一个轻量级的Servlet容器.
tomcat是一款小型的web应用服务器,在并发不是特别高的中小型企业被普遍应用。
3、什么是JDK?JDK中都包含哪些运维常用命令工具?
JDK是用于Java语言开发工具包
常用命令:java -version(用于查看java版本号)
jmap -histo java进程id (查看java进程中的所有实例、实例的个数)
4、简述部署Tomcat软件的思路?
首先导入JDK以及Tomcat软件包,导入完成后将JDK以及Tomcat解压到root目录下并将JDK解压包、然后移动到/usr/local/java下Tomcat解压包导入到/usr/local/tomcat下,然后修改/etc/profile文件在末尾添加JAVA_HOME=/usr/local/java;PATH=$PATH:$JAVA_HOME/bin。最后用source重启/etc/profile文件;
再用java -version查看JAVA版本号,删除原始的JAVA版本号,再重启/etc/profile文件并且启动脚本就完成了Tomcat的安装,可以利用浏览器查看是否安装完成,在输入框输入ip地址:8080,有tomcat页面就代表安装完成
5、Tomcat软件项目发布目录及库文件存放目录?
项目发布目录在/usr/local/tomcat/webapps下
库文件存放在/usr/local/tomcat/lib下
6、Tomcat主配置文件server.xml的作用?
server.xml中主要由三部分组成,<Server><Server><Connector><Connector><Engine><Host><Context>
Server包裹其他两部分可以看做是整个容器
server.xml作为主配置文件是整个服务的核心,其中包括四类:
顶层元素:<Server>和<Service>
连接器:<Connector>
容器:<Engine><Host><Context>
内嵌组件:可以内嵌到容器中的组件。实际上,Server、Service、Connector、Engine、Host和Context是最重要的最核心的Tomcat组件,其他组件都可以归为内嵌组件。
7、Tomcat配置组件host/context作用?参数appBase/autoDeploy/reloadable的作用?
Host虚拟主机的作用,是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine
reloadable有两个值,false和true,当值为false时,Tomcat服务会关闭监控,为true时会开启
autoDeploy
appBase
8、描述Tomcat处理客户请求的流程?
当客户输入域名通过8080端口发送请求时,会被Connector监听,Connector主要是用于端口监听,
9、Tomcat连接数据库的文件名为?
在server.xml 文件里面的context配置Resource
10、Tomcat支持的虚拟主机类型有?
基于域名和端口
域名的就是在host的name属性添加,端口的需要复制一个service
11、简述Tomcat多实例的作用并解释以下部署方式?
单实例单应用:单实例单应用就是开启tomcat的一个实例进程,在server.xml的host配置里面
指定一个网站路径。
单实例多应用:开启一个tomcat实例,但是配置多个host虚拟主机,可以一个实例配置部署多个网站
多实例单应用:就是开启多个tomcat实例,但是host项目路径和jdbc文件都指向一个网站目录。
多实例多应用:就是每个实例对应一套网站。
12、描述Tomcat多实例部署流程?
1.在/usr/local/创建实例目录,比如tomcat_sess/tomcat1和tomcat_sess/tomcat2
2.然后把解压好的tomcat的conf文件拷贝到tomcat1和tomcat2,并在下面创建bin目录
3.然后再创建开启关闭tomcat实例的脚本,给他们加上执行权限
4.再修改conf下面的配置文件:server.xml,把里面的端口都改为和多个实例不同,
否则出现端口占用。
13、Tomcat管理页面都包含哪些关键信息?
jvm内存使用状态:已使用,未使用,总内存
最大线程数,当前线程数,
最大处理时间,处理时间,请求计数。
端口,tomcatio模式
14、描述Tomcat监控方式并描述Tomcat远程监控功能的开启方式?
到/tomcat/bin/catalina.sh 文件添加打开端口的配置
然后可以到Windows已经解压jdk安装包目录下,打开jconsole.exe
再输入要监控的ip和配置文件的端口号
15、Tomcat安全方面优化方式(13种)
端口隐藏,禁用端口管理端,降权启动,文件列表访问控制,版本信息隐藏,访问控制,启停脚本权限回收,页面超时时间,页面压缩,ssl加密,设置最小内存、最大内存
16、描述什么同步、异步、阻塞、非阻塞?
同步:比如一个请求过来时,服务器处理完这个请求才会处理下一个请求。
异步:比如过来一个请求,服务器处理这个请求没得到结果之前还可以处理别的事情。
阻塞:不能得到结果之前,当前线程会挂起。
非阻塞:不能得到结果之前,当前线程不会被阻塞,且并行执行其他操作。
17、描述Tomcat的BIO、NIO、AIO模式的特点及适用场景?
java BIO:同步阻塞,当用户有一个请求过来时,javaBIO机制调用一个线程来连接请求,这个线程会一直存在就算用户断开了连接也会占用服务器资源,从而造成线程过多对资源消耗过大。
适用与较小型的架构,不能支撑并发过高的应用。
java NIO:同步非阻塞,当用户的请求过来时,NIO机制会把请求放入到多路复用器里面,如果里面的请求需要用到io操作,就分配
适用于轻型的高并发场景,比如聊天邮件服务,它是基于缓冲来设置非阻塞nio操作。
java AIO:异步非阻塞,服务器实现模式是一个有效的线程,服务器会把请求给IO给OS系统,然后系统再通知服务器启动一个有效的IO线程。
适用于web高并发场景,是当用户请求过来时,操作系统会通知服务器创建一个有效的连接请求。
18、描述Tomat线程池的作用及优化选项?
线程池的作用是减轻用户访问量大的时候而创建大量线程消耗过多资源和io。
可以使用maxthreads参数 创建最大线程数
minsparethreads参数 创建最小线程数量
prestartminsparethreads 参数 是否在启动就创建minsparethreads个线程。
该配置项在connector默认的端口8080配置
19、描述Tomat连接器的作用及优化选项?
连接器就是tomcat请求入口,connector监听8080端口的请求。
可以配置参数,比如禁用DNS,指定字符集,指定post请求最大值,
指定最大连接数,禁用较长超时连接。
20、描述Tomcat的热部署及热加载?
热加载:tomcat会指定专门的目录监控他们有没有发生改变,如果发生改变就重新加载。
热部署:整个项目重新部署,所有session缓存会被释放,相当于重启机器。
21、描述JVM的新生代、老年代、永久代?
jvm新生代:新生成的对象都是放在新生代里面,新生代的作用是尽可能回收那些生命周期短的对象。
jvm老年代:主要保持那些生命周期长的对象,但不一定不会被GC回收。
jvm永久代:里面的对象永远不会被回收,一般保存的是class,和方法。
22、描述Tomcat针对JVM优化参数有哪些及其含义?
tomcat性能取决于jvm内存大小,而合理的内存参数优化可以使得tomcat性能提高。
在tomcat/bin/catalina.sh 配置文件下面可以使用Xms设置jvm最小内存Xmx设置最大内存。
可以使用XX:NewSize 设置年轻代大小 XX:MaxNewSize设置年取代最大大小。
可以使用XX:PermSize设置永久代大小 XX:MaxPermSize 设置最大永久代大小。
23、描述什么session、什么是cookies?
Session是由应用服务器维持的一个服务器端的存储空间(内存中),用户在连接服务器时,会由服务器生成一个唯一的SessionID,
客户端使用该Session ID 为标识符来存取服务器端的Session存储空间。而Session ID则保存到客户端,使用浏览器Cookie保存的。
Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)
24、描述Tomcat集群中常见的session解决方案?
解决方案一:Session绑定:
Session绑定可以利用负载均衡的源地址Hash(ip_hash)算法实现
解决方案二:Session复制
Session复制是小型架构使用较多的一种服务器集群Session管理机制。应用服务器开启Web容器的Session复制功能,在集群中的几台服务器之间同步Session对象,使每台服务器上都保存了所有用户的Session信息,这种方案实现简单,从本机读取Session信息也很快速,但只能应用在集群规模比较小的环境下
解决方案三:Session服务器之Memcached
安装Memcached
解决方案四:Session服务器之Redis
安装Redis
25、描述Memcached及Redis软件的区别?
Redis与Memcached的区别
内存利用率:使用简单的key-value(键值对)存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
Redis支持数据的备份,即master-slave模式的数据备份。
Redis不仅仅支持简单的key-Value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
Tomcat笔试题!的更多相关文章
- java笔试题13-11-21
中xxx科技公司java笔试题 今天去参加一个公司的面试,去先做了一份笔试题,妈的,太他妈难了(对于我来说,最后做完一个员工说你是不是投错简历了,都是空白,我说我做的大部分都对了..最后面试都没有,就 ...
- 剑指Offer——滴滴笔试题+知识点总结
剑指Offer--滴滴笔试题+知识点总结 情景回顾 时间:2016.9.18 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事件:滴滴笔试 总体来说,滴滴笔试内容体量不算多, ...
- 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?
笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...
- Java 面试/笔试题神整理 [Java web and android]
Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...
- Java 工程师面试题和笔试题整理(一)
根据自己之前收集的还有一部分自己面试的整理出来,希望能帮到面试的兄弟(2017). 海科融通 笔试题 1.有一个字符串,如果要在其中查找一个子串,都有哪些方式,写出你认为最好的一个. 2.写出线程都有 ...
- 【笔试题】Java笔试题知识点
Java高概率笔试题知识点 Java语法基础部分 [解析]java命令程序执行字节码文件是,不能跟文件的后缀名! 1.包的名字都应该是由小写单词组成,它们全都是小写字母,即便中间的单词亦是如此 2.类 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
- 我设计的ASP.NET笔试题,你会多少呢
本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...
随机推荐
- Python记:列表方法略记
- PHP multipart/form-data 远程DOS漏洞
import sys import urllib,urllib2 import datetime from optparse import OptionParser def http_proxy(pr ...
- scw——01 java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMake
错误: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.Mock ...
- 快速排序 QuickSort (C++迭代,递归)
/* * QuickSort.h * 快速排序(将每一个元素转换为轴点元素) * Created on: 2020年2月12日 * Author: LuYonglei */ #ifndef SRC_Q ...
- 2.2 logistic回归损失函数(非常重要,深入理解)
上一节当中,为了能够训练logistic回归模型的参数w和b,需要定义一个成本函数 使用logistic回归训练的成本函数 为了让模型通过学习来调整参数,要给出一个含有m和训练样本的训练集 很自然的, ...
- pikaqiu练习平台(CSRF(跨站请求伪造) )
CSRF(跨站请求伪造) CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接 ...
- 路飞-git操作
复习 """ 1.pip换源 - 采用国内源下载,速度快 2.虚拟环境 - 可以为项目单独配置开发环境,方便管理依赖模块及模块的版本迭代 3.后台项目重构目录结构 4.后 ...
- Linux基础命令小结(超全!!)
Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...
- Tomcat无法成功启动——双击startup.bat闪退
使用的Tomcat是免安装版本的.因为在启动tomcat是需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了tomcat的闪退. 解决办法: 1:在已解压的tomcat的bin文件 ...
- 安装Docker:解决container-selinux >= 2.9问题
1.安装Docker要求Centos内核版本高于3.10:通过uname -r查看当前系统的内核版本 uname -r 2.使用root登陆系统,确保yum包保持更新到最新: sudo yum ...