2023计算机方向的面试题目有哪些.docx
2023计算机方向的面试题目有哪些2023计算机方向的面试题目有哪些面试是每个人都会经受的事情,在面试前我们应当做好充分的预 备,可以提前看看一些面试题目,提前做好预备。下面我给大家带来 2023计算机方向的面试题目有哪些,期望能帮忙到大家!ActiveMQ面试题目1、什么是 ActiveMQ?activeMQ是一种开源的,实现了 JMS1. 1规范的,面对消息(M0M) 的中间件,为应用程序供应高效的、可扩展的、稳定的和平安的企业 级消息通信。2、Activemq的瓶颈值依据网上一般评测文档上来看,每秒的消息吞吐在2000以上, acticemq也可以集群化部署,也是使用zookeeper来搭建。3、ActiveMQ服务器宕机怎么办?这得从ActiveMQ的储存机制说起。在通常的状况下,非长久化 消息是存储在内存中的,长久化消息是存储在文件中的,它们的最大 限制在配置文件的节点中配置。但是,在非长久化消息积累到肯定程度,内存告急的时候, ActiveMQ会将内存中的非长久化消息写入临时文件中,以腾出内存。 虽然都保存到了文件里,但它和长久化消息的区分是,重启后长久化bin:启动和关闭tomcat的bat文件。conf:配置文件。server, xml该文件用于配置server相关的信息,比如tomcat 启动的端口号,配置主机(Host)。web. xml文件配置与web应用(web应用相当于一个web站点)tomcat-user, xml配置用户名密码和相关权限。lib:该名目放置运行tomcat运行需要的jar包。logs:存放日志,当我们需要查看日志的时候,可以查询信息。webapps :放置我们的web应用。work工作名目:该名目用于存放jsp被访问后生成对应的 server文件和.class文件。三、如何配置Tomcat虚拟名目?1、在server. xml中的节点下添加如下代码。path表示的是访 问时输入的web项目名,docBase表示的是站点名目的肯定路径。2、进入到confCatal inalocalhost文件下,创建一个xml文件, 该文件的名字就是站点的名字。四、Tomcat体系结构是怎样的?扫瞄器-tomcat server- service -connector - engine (弓擎) -host (主机)- web应用。五、Web恳求在Tomcat恳求中的恳求流程是怎么样的?扫瞄器输入URL地址;查询本机hosts文件查找IP;查询DNS服务器查找IP;向该IP发送Http恳求;Tomcat容器解析主机名;©Tomcat容器解析Web应用;Tomcat容器解析资源名称;Tomcat容器猎取资源;Tomcat响应扫瞄器。六、如何在tomcat集群中实现Session共享Apache集群实现Tomcat的Session共享配置其实很简洁,在 Tomcat自带的文档中有具体的说明(/docs/cluster-howto. html ), 只不过是英语的,所以联合下面依据说下怎么配置吧:1、既然是集群确定要多预备几个Tomcat来模拟,比如分别为假如各Tomcat程序放在不同的机器上,那么就不会有端口的冲 突。假如是放在同一台机器上的话,那就简洁改几个端口,防止端口 占用造成的冲突。打开conf文件夹中的server, xml文件,需要修改 的端口有:以上port需要修改,至于修改成什么样子,看你自己了,只要 不消失端口冲突就可以了,要保证各个Tomcat实例间没有端口冲突。七、tomcat 有哪些 Connector?Tomcat的Web服务器连接器支持两种协议:AJP和HTTP,它们 均定义了以二进制格式在Web服务器和Tomcat之间进行数据传输, 并供应相应的掌握命令。AJP (Apache JServ Protocol)协议:目前正在使用的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 和 Application Server 的区分是什么?最大区分,Webserver 一般仅仅指Web (如servlet, jsp)的应用 服务器,ApplicationServer不仅可以是Web,还可以是Ejb等其它 的应用服务器。web server可以是application server的一部分,也可以是单 独存在。十、Tomcat的缺省端口是多少,怎么修改?1)找到Tomcat名目下的conf文件夹;2)进入conf文件夹里面找到server, xml文件;3)打开 server, xml 文件;4)在server, xml文件里面找到下列信息;port=“8080”改成你想要的端口H*一、Tomcat有几种部署方式? 1)直接把Web项目放在webapps下,Tomcat会自动将其部署2)在server, xml文件上配置节点,设置相关的属性即可3)通过 Catalina 来进行配置:进入到 confCatalinalocalhost 文件下,创建一个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恳求;计算机方向的面试题目有哪些文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有 需要的人。消息会从文件中恢复,非长久化的临时文件会直接删除。那假如文件增大到达了配置中的最大限制的时候会发生什么?我 做了以下试验:设置2G左右的长久化文件限制,大量生产长久化消息直到文件 达到最大限制,此时生产者堵塞,但消费者可正常连接并消费消息, 等消息消费掉一部分,文件删除又腾出空间之后,生产者又可连续发 送消息,服务自动恢复正常。设置2G左右的临时文件限制,大量生产非长久化消息并写入临 时文件,在达到最大限制时,生产者堵塞,消费者可正常连接但不能 消费消息、,或者原本慢速消费的消费者,消费突然停止。整个系统可 连接,但是无法供应服务,就这样挂了。详细缘由不详,解决方案:尽量不要用非长久化消息,非要用的 话,将临时文件限制尽可能的调大。4、AcitveMQ的作用、原理?(生产者、消费者。p2p、订阅实现 流程)Activemq的作用就是系统之间进行通信。当然可以使用其他方 式进行系统间通信,假如使用Activemq的话可以对系统之间的调用 进行解耦,实现系统间的异步通信。原理就是生产者生产消息,把消 息发送给activemq。Activemq接收到消息,然后查看有多少个消费 者,然后把消息转发给消费者,此过程中生产者无需参加。消费者接 收到消息后做相应的处理和生产者没有任何关系5、activemq在项目中如何应用的Activemq在项目中主要是完成系统之间通信,并且将系统之间的调用进行解耦。例如在添加、修改商品信息后,需要将商品信息同 步到索引库、同步缓存中的数据以及生成静态页面一系列操作。在此场景下就可以使用activemqo 一旦后台对商品信息进行修 改后,就向activemq发送一条消息,然后通过activemq将消息发送 给消息的消费端,消费端接收到消息可以进行相应的业务处理7、rabbitmq如何实现集群高可用?集群是保证服务牢靠性的一种方式,同时可以通过水平扩展以提 升消息吞吐力量。RabbitMQ是用分布式程序设计语言erlang开发的, 所以天生就支持集群。接下来,将介绍RabbitMQ分布式消息处理方 式、集群模式、节点类型,并动手搭建一个高可用集群环境,最终通 过java程序来验证集群的高可用性。RabbitMQ分布式的消息处理方式有以下三种:(l)Clustering:不支持跨网段,各节点需运行同版本的Erlang 和RabbitMQ,应用于同网段局域网。(2)Federation:允许单台服务器上的Exchange或Queue接收发 布到另一台服务器上Exchange或Queue的消息,应用于广域网。(3)Shovel:与Federation类似,但工作在更低层次。RabbitMQ对网络延迟很敏感,在LAN环境建议使用clustering 方式;在WAN环境中,则使用Federation或Shovel。我们平常说的 RabbitMQ集群,说的就是clustering方式,它是RabbitMQ内嵌的 一种消息处理方式,而Federation或Shovel则是以plugin形式存 在。8、丢消息怎么办?这得从java的java. net. SocketException特别说起。简洁点说 就是当网络发送方发送一堆数据,然后调用close关闭连接之后。这 些发送的数据都在接收者的缓存里,接收者假如调用read方法照旧 能从缓存中读取这些数据,尽管对方已经关闭了连接。但是当接收者尝试发送数据时,由于此时连接已关闭,所以会发 生特别,这个很好理解。不过需要留意的是,当发生SocketException 后,原本缓存区中数据也作废了,此时接收者再次调用read方法去 读取缓存中的数据,就会报 Software caused connection abort: recv failed 错误。通过抓包得知,ActiveMQ会每隔10秒发送一个心跳包,这个心 跳包是服务器发送给客户端的,用来推断客户端死没死。假如你看过 上面第一条,就会知道非长久化消息积累到肯定程度会写到文件里, 这个写的过程会堵塞全部动作,而且会持续20到30秒,并且随着内 存的增大而增大。当客户端发完消息调用connection, close()0t,会期盼服务器 对于关闭连接的回答,假如超过15秒没回答就直接调用socket层的 close关闭tcp连接了。这时客户端发出的消息其实还在服务器的缓 存里等待处理,不过由于服务器心跳包的设置,导致发生了 java. net. SocketException特别,把缓存里的数据作废了,没处理 的消息全部丢失。解决方案:用长久化消息,或者非长久化消息准时处理不要积累, 或者启动事务,启动事务后,commit。方法会负责任的等待服务器的 返回,也就不会关闭连接导致消息丢失了。Rabb it MQ面试题目一、什么是 RabbitMQ?采纳AMQP高级消息队列协议的一种消息队列技术,最大的特点 就是消费并不需要确保供应方存在,实现了服务之间的高度解耦。二、为什么要使用RabbitMQ?在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;拥有长久化的机制,进程消息,队列中的信息也可以保存下来。实现消费者和生产者之间的解耦。对于高并发场景下,利用消息队列可以使得同步访问变为串行 访问达到肯定量的限流,利于数据库的操作。可以使用消息队列达到异步下单的效果,排队中,后台进行规 律下单。三、RabbitMQ的使用场景有哪些?跨系统的异步通信,全部需要异步交互的地方都可以使用消息 队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件 (异步)的通讯方式。多个应用之间的耦合,由于消息是平台无关和语言无关的,而 且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合 的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。在 企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程过 程调用都可以作为集成的方法。应用内的同步变异步,比如订单处理,就可以由前端应用将订 单信息放到队列,后端应用从队列里依次获得消息处理,高峰时的大 量订单可以积压在队列里渐渐处理掉。由于同步通常意味着堵塞,而 大量线程的堵塞会降低计算机的性能。消息驱动的架构(EDA),系统分解为消息队列,和消息制造者 和消息消费者,一个处理流程可以依据需要拆成多个阶段(Stage), 阶段之间用队列连接起来,前一个阶段处理的结果放入队列,后一个 阶段从队列中猎取消息连续处理。应用需要更敏捷的耦合方式,如发布订阅,比如可以指定路由 规章。跨局域网,甚至跨城市的通讯(CDN行业),比如北京机房与广 州机房的应用程序的通信。四、RabbitMQ有哪些重要的角色?RabbitMQ中重要的角色有:生产者、消费者和代理:生产者:消息的创建者,负责创建和推送数据到消息服务器;消费者:消息的接收方,用于处理数据和确认消息;代理:就是RabbitMQ本身,用于扮演“快递”的角色,本身 不生产消息,只是扮演“快递”的角色。五、如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?1、发送方确认模式将信道设置成confirm模式(发送方确认模式),则全部在信道 上发布的消息都会被指派一个唯一的ID。一旦消息被投递到目的队列后,或者消息被写入磁盘后(可长 久化的消息),信道会发送一个确认给生产者(包含消息唯一 ID)O假如RabbitMQ发生内部错误从而导致消息丢失,会发送一条 nack (notacknowledged, 未确认)消息。发送方确认模式是异步的,生产者应用程序在等待确认的同时, 可以连续发送消息。当确认消息到达生产者应用程序,生产者应用程 序的回调方法就会被触发来处理确认消息。2、接收方确认机制消费者接收每一条消息后都必需进行确认(消息接收和消息确 认是两个不同操作)。只有消费者确认了消息,RabbitMQ才能平安地 把消息从队列中删除。这里并没有用到超时机制,RabbitMQ仅通过Consumer的连接 中断来确认是否需要重新发送消息。也就是说,只要连接不中断, RabbitMQ给了 Consumer足够长的时间来处理消息。保证数据的最终 全都性。3、下面排列几种特别状况假如消费者接收到消息,在确认之前断开了连接或取消订阅, RabbitMQ会认为消息没有被分发,然后重新分发给下一个订阅的消 费者。(可能存在消息重复消费的隐患,需要去重)假如消费者接收到消息却没有确认消息、,连接也未断开,则 Rabb it MQ认为该消费者繁忙,将不会给该消费者分发更多的消息。六、RabbitMQ怎么避开消息丢失?消息长久化;ACK确认机制;设置集群镜像模式;消息补偿机制。七、要保证消息长久化胜利的条件有哪些?声明队列必需设置长久化durable设置为true。消息推送投递模式必需设置长久化,deliveryMode设置为 2(长久)。消息已经到达长久化交换器。消息已经到达长久化队列。以上四个条件都满意才能保证消息长久化胜利。八、RabbitMQ长久化有什么缺点?长久化的缺地就是降低了服务器的吞吐量,由于使用的是磁盘而 非内存存储,从而降低了吞吐量。可尽量使用ssd硬盘来缓解吞吐量的问题。九、RabbitMQ有几种广播类型?三种广播模式:fanout:全部bind到此exchange的queue都可以接收消息(纯 广播,绑定到RabbitMQ的接受者都能收到消息);direct:通过routingKey和exchange打算的那个唯一的queue 可以接收消息;topic:全部符合routingKey (此时可以是一个表达式)的 routingKey所bind的queue可以接收消息;十、RabbitMQ中vhost的作用是什么?vhost 可以理解为虚拟 broker ,即 mini-RabbitMQ server。其 内部均含有独立的queue> exchange和binding等,但最最重要的 是,其拥有独立的权限系统,可以做到vhost范围的用户掌握。当 然,从RabbitMQ的全局角度,vhost可以作为不同权限隔离的手段(一 个典型的例子就是不同的应用可以跑在不同的vhost中)。关于Tomcat的13道面试题一、什么是Tomcat?Tomcat简洁的说就是一个运行JAVA的网络服务器,底层是 Socket的一个程序,它也是JSP和Serlvet的一个容器。二、tomcat结构名目有哪些?