版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IT面试笔试题目及回答关于Tomcat的7道面试题一、tomcat有哪些Connector?Tomcat的Web服务器连接器支持两种协议:AJP和HTTP,它们均定义了以二进制格式在Web服务器和Tomcat之间进行数据传输,并供应相应的限制叮嘱。AJPfApacheJServProtocol)协议:目前正在运用的AJP协议的版本是通过JK和JK2连接器供应支持的AJP13,它基于二进制的格式在Web服务器和Tomcat之间传输数据,而此前的版本AJP1O和AJP11则运用文本格式传输数据。HTTP协议:诚如其名称所表示,其是运用HTTP或HTTPS协议在Web服务器和Tomcat之间建立通信,此时,Tomcat就是一个完全功能的HTTP服务器,它须要监听在某端口上以接收来自于商前服务器的请求。二、tomcat的Valve的作用是什么?Valve类似于过滤器,它可以工作于Engine和Host/Context之间、Host和Context之间以及Context和Web应用程序的某资源之间。一个容器内可以建立多个Valve,而且Valve定义的次序也确定了它们生效的次序。EPHEMERAL:临季节点,临季节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与Zookeeper连接断开不愿定会话失效),那么这个客户端创建的全部临季节点都会被移除。PERSISTENT_SEQUENTIAL:许久依次节点,基本特性同许久节点,只是增加了依次属性,节点名后边会追加一个由父节点维护的自增整型数字。EPHEMERAL_SEQUENTIAL:临时依次节点,基本特性同临季节点,增加了依次属性,节点名后边会追加一个由父节点维护的自增整型数字。6、Zookeeper和Dubbo的关系?Dubbo的将注册中心进行抽象,是得它可以外接不同的存储媒介给注册中心供应服务,有ZooKeeper,Memcached,Redis等。引入了ZooKeeper作为存储媒介,也就把ZooKeeper的特性引进来。首先是负载均衡,单注册中心的承载实力是有限的,在流量达到确定程度的时候就须要分流,负载均衡就是为了分流而存在的,一个ZooKeeper群协作相应的Web应用就可以很简洁达到负载均衡;资源同步,单单有负载均衡还不够,节点之间的数据和资源须要同步,ZooKeeper集群就自然具备有这样的功能;命名服务,将树状结构用于维护全局的服务地址列表,服务供应者在启动的时候,向ZooKeeper上的指定节点/dubbo/${serviceName}/providers书目下写入自己的URL地址,这个操作就完成了服务的发布。其他特性还有Mast选举,分布式锁等。三、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项目放在web叩ps下,Tomcat会自动将其部署2)在server.xml文件上配置节点,设置相关的属性即可3)通过Catalina来进行配置:进入到conf\Catalina\localhost文件下,创建一个xml文件,该文件的名字就是站点的名字。编写XML的方式来进行设置。六、tomcat容器是如何创建servlet类实例?用到了什么原理?当容器启动时,会读取在webapps书目下全部的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上假如为正数,则在一起先就实例化,假如不写或为负数,则第一次请求实例化。七、Tomcat顶层架构小结(l)Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container;(2)Server掌管着整个Tomcat的生死大权;(4)Service是对外供应服务的;(5)Connector用于接受请求并将请求封装成Request和Response来具体处理;⑹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台,NO,即最少须要3台。3、说一下两阶段提交和三阶段提交的过程?分别有什么问题?(一)两阶段提交协议2PC.第一阶段(投票阶段):⑴协调者节点向全部参加者节点询问是否可以执行提交操作(vote),并起先等待各参加者节点的响应;(2)参加者节点执行询问发起为止的全部事务操作,并将Undo信息和Redo信息写入日志。(3)各参加者节点响应协调者节点发起的询问o假如参加者节点的事务操作实际执行成功,则它返回一个"同意〃消息;假如参加者节点的事务操作实际执行失败,则它返回一个"中止〃消息。.其次阶段(提交执行阶段):当协调者节点从全部参加者节点获得的相应消息都为"同意〃时:⑴协调者节点向全部参加者节点发出"正式提交(commit)〃的请求;⑵参加者节点正式完成操作,并释放在整个事务期间内占用的资源;(3)参加者节点向协调者节点发送〃完成〃消息;(4)协调者节点受到全部参加者节点反馈的“完成〃消息后,完成事务。(二)两阶段提交存在的问题:.执行过程中,全部参加节点都是事务堵塞型的。当参加者占有公共资源时,其他第三方节点访问公共资源不得不处于堵塞状态;.参加者发生故障:协调者须要给每个参加者额外指定超时机制,超时后整个事务失败;.协调者发生故障:参加者会始终堵塞下去。须要额外的备机进行容错;.二阶段无法解决的问题:协调者再发出commit消息之后宕机,而唯一接收到这条消息的参加者同时也宕机了。那么即使协调者通过选举协议产生了新的协调者,这条事务的状态也是不确定的,没人知道事务是否被已经提交。(三)三阶段提交协议3PC与两阶段提交不同的是,三阶段提交有两个改动点:.引入超时机制。同时在协调者和参加者中都引入超时机制;.在第一阶段和其次阶段中插入一个准备阶段。保证了在最终提交阶段之前各参加节点的状态是全都的。也就是说,除了引入超时机制之外,3PC把2PC的准备阶段再次一分为二,这样三阶段提交就有CanCommit>PreCommit>DoCommit三个阶段。CanCommit阶段3PC的CanCommit阶段其实和2PC的准备阶段很像。协调者向参加者发送commit请求,参加者假如可以提交就返回Yes响应,否则返回No响应。(1)事务询问:协调者向参加者发送CanCommit请求。询问是否可以执行事务提交操作。然后起先等待参加者的响应。(2)响应反馈:参加者接到CanCommit请求之后,正常状况下,假如其自身认为可以顺当执行事务,则返回Yes响应,并进入预备状态。否则反馈N。。PreCommit阶段协调者依据参加者的反应状况来确定是否可以接着事务的PreCommit操作。依据响应状况,有以下两种可能:假如协调者从全部的参加者获得的反馈都是Yes响应,那么就会执行事务的预执行。⑴发送预提交请求:协调者向参加者发送PreCommit请求,并进入Prepared阶段。(2)事务预提交:参加者接收到PreCommit请求后,会执行事务操作,并将undo和redo信息记录到事务日志中。⑶响应反馈:假如参加者成功的执行了事务操作,则返回ACK响应,同时起先等待最终指令。假如有任何一个参加者向协调者发送了N。响应,或者等待超时之后,协调者都没有接到参加者的响应,那么就执行事务的中断。(1)发送中断请求:协调者向全部参加者发送abort请求。(2)中断事务:参加者收到来自协调者的abort请求之后(或超时之后,仍未收到协调者的请求),执行事务的中断。doCommit阶段该阶段进行真正的事务提交,也可以分为以下两种状况。执行提交⑴发送提交请求:协调接收到参加者发送的ACK响应,那么他将从预提交状态进入到提交状态。并向全部参加者发送doCommit请求。(2)事务提交:参加者接收到doCommit请求之后,执行正式的事务提交。并在完成事务提交之后释放全部事务资源。⑶响应反馈:事务提交完之后,向协调者发送ACK响应。⑷完成事务:协调者接收到全部参加者的ACK响应之后,完成事务。中断事务协调者没有接收到参加者发送的ACK响应(可能是接受者发送的不是ACK响应,也可能响应超时),那么就会执行中断事务。(1)发送中断请求:协调者向全部参加者发送abort请求。⑵事务回滚:参加者接收到abort请求之后,利用其在阶段二记录的undo信息来执行事务的回滚操作,并在完成回滚之后释放全部的事务资源。⑶反馈结果:参加者完成事务回滚之后,向协调者发送ACK消/匕、O(4)中断事务:协调者接收到参加者反馈的ACK消息之后,执行事务的中断。(四)三阶段提交的问题:网络分区可能会带来问题。须要四阶段解决:四阶段干脆调用远程服务的数据状态,确定当前数据全都性的状况。4、Zookeeper宕机如何处理?Zookeeper本身也是集群,举荐配置不少于3个服务器。Zookeeper自身也要保证当一个节点宕机时,其他节点会接着供应服务。假如是一个Follower宕机,还有2台服务器供应访问,因为Zookeeper上的数据是有多个副本的,数据并不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年劳动协议标准格式版B版
- 2024年土地使用权转让合同解析
- 2024年协议管理强化与招投标技巧提升工作坊版B版
- 2024年国际先进仪器技术交流合作合同一
- 江南大学《电力电子技术》2023-2024学年第一学期期末试卷
- 佳木斯大学《药物合成反应3》2021-2022学年第一学期期末试卷
- 2024年医师进修协议模板版B版
- 范文大全矿山生态环境修复工程承包合同2024年3篇
- 2024年全面安全员聘任合同范本版B版
- 暨南大学《英语语法与写作》2021-2022学年第一学期期末试卷
- 人音版初中音乐 九年级上册 中考一轮复习课件
- 主题班会:班风校风主题班会课课件
- 中建污水支管逆作井安全专项施工方案
- 肝硬化食管胃底静脉曲张破裂出血的诊治
- 初中体育《篮球单元计划及体前变向换手运球》教学设计
- 万物之理-爱因斯坦之梦智慧树知到课后章节答案2023年下中国海洋大学
- 项目备案申请表
- 【基于PLC的交通信号灯控制系统设计7000字(论文)】
- 洛洛学专注:用故事帮助容易走神的孩子
- 2.1.2+岩石圈物质循环+第二课时+课件【知识精研提升】高二地理湘教版(2019)选择性必修1
- 化工园区招商政策
评论
0/150
提交评论