IT面试笔试题目及回答_第1页
IT面试笔试题目及回答_第2页
IT面试笔试题目及回答_第3页
IT面试笔试题目及回答_第4页
IT面试笔试题目及回答_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——IT面试笔试题目及回答IT面试笔试题目及回复

求职面试时,面试官一般都会问你一些问题,也可能是通过问卷的形式提问,怎么回复才是最好的呢?这里给大家共享一些IT面试笔试题目及回复,梦想对大家有所扶助。

关于Tomcat的7道面试题

一、tomcat有哪些Connector?

Tomcat的Web服务器连接器支持两种协议:AJP和HTTP,它们均定义了以二进制格式在Web服务器和Tomcat之间举行数据传输,并供给相应的操纵命令。

AJP(ApacheJServProtocol)协议:目前正在使用的AJP协议的版本是通过JK和JK2连接器供给支持的AJP13,它基于二进制的格式在Web服务器和Tomcat之间传输数据,而此前的版本AJP10和AJP11那么使用文本格式传输数据。

HTTP协议:诚如其名称所表示,其是使用HTTP或HTTPS协议在Web服务器和Tomcat之间建立通信,此时,Tomcat就是一个完全功能的HTTP服务器,它需要监听在某端口上以接收来自于商前服务器的苦求。

二、tomcat的Valve的作用是什么?

Valve类似于过滤器,它可以工作于Engine和Host/Context之间、Host和Context之间以及Context和Web应用程序的某资源之间。一个容器内可以建立多个Valve,而且Valve定义的次序也抉择了它们生效的次序。

三、Webserver和ApplicationServer的识别是什么?

最大识别,WebServer一般仅仅指Web(如servlet,jsp)的应用服务器,ApplicationServer不仅可以是Web,还可以是Ejb等其它的应用服务器。

webserver可以是applicationserver的一片面,也可以是单独存在。

四、Tomcat的缺省端口是多少,怎么修改?

1)找到Tomcat目次下的conf文件夹;

2)进入conf文件夹里面找到server.xml文件;

3)开启server.xml文件;

4)在server.xml文件里面找到以下信息;

port=“8080”改成你想要的端口

五、Tomcat有几种部署方式?

1)直接把Web工程放在webapps下,Tomcat会自动将其部署

2)在server.xml文件上配置节点,设置相关的属性即可

3)通过Catalina来举行配置:进入到conf\Catalina\localhost文件下,创造一个xml文件,该文件的名字就是站点的名字。编写XML的方式来举行设置。

六、tomcat容器是如何创造servlet类实例?用到了什么原理?

当容器启动时,会读取在webapps目次下全体的web应用中的web.xml文件,然后对xml文件举行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都举行加载,并通过反射的方式实例化。(有时候也是在第一次苦求时实例化)在servlet注册时加上假设为正数,那么在一开头就实例化,假设不写或为负数,那么第一次苦求实例化。

七、Tomcat顶层架构小结

(1)Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container;

(2)Server掌管着整个Tomcat的生死大权;

(4)Service是对外供给服务的;

(5)Connector用于采纳苦求并将苦求封装成Request和Response来概括处理;

(6)Container用于封装和管理Servlet,以及概括处理request苦求;

RabbitMQ面试题及答案

1、RabbitMQ怎么制止消息损失?

①消息耐久化;

②ACK确认机制;

③设置集群镜像模式;

④消息补偿机制。

2、要保证消息耐久化告成的条件有哪些?

①声明队列务必设置耐久化durable设置为true。

②消息推送投递模式务必设置耐久化,deliveryMode设置为2(耐久)。

③消息已经到达耐久化交换器。

④消息已经到达耐久化队列。

以上四个条件都得志才能保证消息耐久化告成。

3、RabbitMQ耐久化有什么缺点?

耐久化的缺地就是降低了服务器的吞吐量,由于使用的是磁盘而非内存存储,从而降低了吞吐量。可尽量使用ssd硬盘来缓解吞吐量的问题。

4、RabbitMQ有几种播送类型?

三种播送模式:

①fanout:全体bind到此exchange的queue都可以接收消息(纯播送,绑定到RabbitMQ的采纳者都能收到消息);

②direct:通过routingKey和exchange抉择的那个唯一的queue可以接收消息;

③topic:全体符合routingKey(此时可以是一个表达式)的routingKey所bind的queue可以接收消息;

5、RabbitMQ中vhost的作用是什么?

vhost可以理解为虚拟broker,即mini-RabbitMQserver。其内部均含有独立的queue、exchange和binding等,但最最重要的是,其拥有独立的权限系统,可以做到vhost范围的用户操纵。当然,从RabbitMQ的全局角度,vhost可以作为不同权限隔离的手段(一个典型的例子就是不同的应用可以跑在不同的vhost中)。

Zookeeper面试题

1、集群中为什么要有主节点?

在分布式环境中,有些业务规律只需要集群中的某一台机器举行执行,其他的机器可以共享这个结果,这样可以大大裁减重复计算,提高性能,于是就需要举行leade选举。

2、集群中有3台服务器,其中一个节点宕机,这个时候Zookeeper还可以使用吗?

可以持续使用,单数服务器只要没超过一半的服务器宕机就可以持续使用。

集群规矩为2N+1台,N0,即最少需要3台。

3、说一下两阶段提交和三阶段提交的过程?分别有什么问题?

(一)两阶段提交协议2PC

1.第一阶段(投票阶段):

(1)协调者节点向全体参与者节点询问是否可以执行提交操作(vote),并开头等待各参与者节点的响应;

(2)参与者节点执行询问发起为止的全体事务操作,并将Undo信息和Redo信息写入日志。

(3)各参与者节点响应协调者节点发起的询问。假设参与者节点的事务操作实际执行告成,那么它返回一个“同意”消息;假设参与者节点的事务操作实际执行失败,那么它返回一个“中止”消息。

2.其次阶段(提交执行阶段):

当协调者节点从全体参与者节点获得的相应消息都为“同意”时:

(1)协调者节点向全体参与者节点发出“正式提交(commit)”的苦求;

(2)参与者节点正式完成操作,并释放在整个事务期间内占用的资源;

(3)参与者节点向协调者节点发送“完成”消息;

(4)协调者节点受到全体参与者节点反应的“完成”消息后,完成事务。

(二)两阶段提交存在的问题:

1.执行过程中,全体参与节点都是事务阻塞型的。当参与者占有公共资源时,其他第三方节点访问公共资源不得不处于阻塞状态;

2.参与者发生故障:协调者需要给每个参与者额外指定超时机制,超时后整个事务失败;

3.协调者发生故障:参与者会一向阻塞下去。需要额外的备机举行容错;

4.二阶段无法解决的问题:协调者再发出commit消息之后宕机,而唯一接收到这条消息的参与者同时也宕机了。那么即使协调者通过选举协议产生了新的协调者,这条事务的状态也是不确定的,没人知道事务是否被已经提交。

(三)三阶段提交协议3PC

与两阶段提交不同的是,三阶段提交有两个改动点:

1.引入超时机制。同时在协调者和参与者中都引入超时机制;

2.在第一阶段和其次阶段中插入一个打定阶段。保证了在结果提交阶段之前各参与节点的状态是一致的。

也就是说,除了引入超时机制之外,3PC把2PC的打定阶段再次一分为二,这样三阶段提交就有CanCommit、PreCommit、DoCommit三个阶段。

1.CanCommit阶段

3PC的CanCommit阶段其实和2PC的打定阶段很像。协调者向参与者发送commit苦求,参与者假设可以提交就返回Yes响应,否那么返回No响应。

(1)事务询问:协调者向参与者发送CanCommit苦求。询问是否可以执行事务提交操作。然后开头等待参与者的响应。

(2)响应反应:参与者接到CanCommit苦求之后,正常处境下,假设其自身认为可以顺遂执行事务,那么返回Yes响应,并进入预备状态。否那么反应No。

2.PreCommit阶段

协调者根据参与者的回响处境来抉择是否可以持续事务的PreCommit操作。根据响应处境,有以下两种可能:

假使协调者从全体的参与者获得的反应都是Yes响应,那么就会执行事务的预执行。

(1)发送预提交苦求:协调者向参与者发送PreCommit苦求,并进入Prepared阶段。

(2)事务预提交:参与者接收到PreCommit苦求后,会执行事务操作,并将undo和redo信息记录到事务日志中。

(3)响应反应:假设参与者告成的执行了事务操作,那么返回ACK响应,同时开头等待最终指令。

假使有任何一个参与者向协调者发送了No响应,或者等待超时之后,协调者都没有接到参与者的响应,那么就执行事务的中断。

(1)发送中断苦求:协调者向全体参与者发送abort苦求。

(2)中断事务:参与者收到来自协调者的abort苦求之后(或超时之后,仍未收到协调者的苦求),执行事务的中断。

3.doCommit阶段

该阶段举行真正的事务提交,也可以分为以下两种处境。

3.1执行提交

(1)发送提交苦求:协调接收到参与者发送的ACK响应,那么他将从预提交状态进入到提交状态。并向全体参与者发送doCommit苦求。

(2)事务提交:参与者接收到doCommit苦求之后,执行正式的事务提交。并在完成事务提交之后释放全体事务资源。

(3)响应反应:事务提交完之后,向协调者发送ACK响应。

(4)完成事务:协调者接收到全体参与者的ACK响应之后,完成事务。

3.2中断事务

协调者没有接收到参与者发送的ACK响应(可能是采纳者发送的不是ACK响应,也可能响应超时),那么就会执行中断事务。

(1)发送中断苦求:协调者向全体参与者发送abort苦求。

(2)事务回滚:参与者接收到abort苦求之后,利用其在阶段二记录的undo信息来执行事务的回滚操作,并在完成回滚之后释放全体的事务资源。

(3)反应结果:参与者完成事务回滚之后,向协调者发送ACK消息。

(4)中断事务:协调者接收到参与者反应的ACK消息之后,执行事务的中断。

(四)三阶段提交的问题:

网络分区可能会带来问题。需要四阶段解决:四阶段直接调用远程服务的数据状态,确定当前数据一致性的处境。

4、Zookeeper宕机如何处理?

Zookeeper本身也是集群,推举配置不少于3个服务器。Zookeeper自身也要保证当一个节点宕机时,其他节点会持续供给服务。假设是一个Follower宕机,还有2台服务器供给访问,由于Zookeeper上的数据是有多个副本的,数据并不会损失;假设是一个Leader宕机,Zookeeper会选举出新的Leader。

Zookeeper集群的机制是只要超过半数的节点正常,集群就能正常供给服务。只有在Zookeeper节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。所以:

3个节点的cluster可以挂掉1个节点(leader可以得到2票1.5)

2个节点的cluster就不能挂掉任何1个节点了(leader可以得到1票=1)

5、说下四种类型的数据节点Znode?

1.PERSISTENT:耐久节点,除非手动删除,否那么节点一向存在于Zookeeper上。

2.EPHEMERAL:临节令点,临节令点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与Zookeeper连接断开不确定会话失效),那么这个客户端创造的全体临节令点都会被移除。

3.PERSISTENT_SEQUENTIAL:耐久依次节点,根本特性同耐久节点,只是增加了依次属性,节点名后边会追加一个由父节点维护的自增整型数字。

4.EPHEMERAL_SEQUENTIAL:临时依次节点,根本特性同临节令点,增加了依次属性,节点名后边会追加一个由父节点维护的自增整型数字。

6、Zookeeper和Dubbo的关系?

Dubbo的将注册中心举行抽象,是得它可以外接不同的存储媒介给注册中心供给服务,有ZooKeeper,Memcached,Redis等。

引入了ZooKeeper作为存储媒介,也就把Zo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论