IT面试笔试题目及答案2020
  RabbitMQ面试题及答案
  一、什么是RabbitMQ?
  采用AMQP高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦。
  二、为什么要使用RabbitMQ?
  ①在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;
  ②拥有持久化的机制,进程消息,队列中的信息也可以保存下来。
  ③实现消费者和生产者之间的解耦。
  ④对于高并发场景下,利用消息队列可以使得同步访问变为串行访问达到一定量的限流,利
于数据库的操作。
  ⑤可以使用消息队列达到异步下单的效果,排队中,后台进行逻辑下单。
  三、RabbitMQ的使用场景有哪些?
  ①跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发(异步)的通讯方式。
  ②多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。在企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程过程调用都可以作为集成的方法。
  ③应用内的同步变异步,比如订单处理,就可以由前端应用将订单信息放到队列,后端应用从队列里依次获得消息处理,高峰时的大量订单可以积压在队列里慢慢处理掉。由于同步通常意味着阻塞,而大量线程的阻塞会降低计算机的性能。
  ④消息驱动的架构(EDA),系统分解为消息队列,和消息制造者和消息消费者,一个处理流程可以根据需要拆成多个阶段(Stage),阶段之间用队列连接起来,前一个阶段处理的结果放入队列,后一个阶段从队列中获取消息继续处理。
  ⑤应用需要更灵活的耦合方式,如发布订阅,比如可以指定路由规则。
  ⑥跨局域网,甚至跨城市的通讯(CDN行业),比如北京机房与广州机房的应用程序的通信。
  四、RabbitMQ有哪些重要的角?
  RabbitMQ中重要的角有:生产者、消费者和代理:
  ①生产者:消息的创建者,负责创建和推送数据到消息服务器;
  ②消费者:消息的接收方,用于处理数据和确认消息;
  ③代理:就是RabbitMQ本身,用于扮演“快递”的角,本身不生产消息,只是扮演“快递”的角。
  五、如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
  1、发送方确认模式
  ①将信道设置成confirm模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的ID。
  ②一旦消息被投递到目的队列后,或者消息被写入磁盘后(可持久化的消息),信道会发送一个确认给生产者(包含消息唯一 ID)。
  ③如果RabbitMQ发生内部错误从而导致消息丢失,会发送一条 nack(notacknowledged,未确认)消息。
  ④发送方确认模式是异步的,生产者应用程序在等待确认的同时,可以继续发送消息。当确认消息到达生产者应用程序,生产者应用程序的回调方法就会被触发来处理确认消息。
  2、接收方确认机制
  ①消费者接收每一条消息后都必须进行确认(消息接收和消息确认是两个不同操作)。只有消费者确认了消息,RabbitMQ 才能安全地把消息从队列中删除。
  ②这里并没有用到超时机制,RabbitMQ仅通过Consumer的连接中断来确认是否需要重新发送消息。也就是说,只要连接不中断,RabbitMQ给了Consumer足够长的时间来处理消息。保证数据的最终一致性。
  3、下面罗列几种特殊情况
  ①如果消费者接收到消息,在确认之前断开了连接或取消订阅,RabbitMQ会认为消息没有被分发,然后重新分发给下一个订阅的消费者。(可能存在消息重复消费的隐患,需要去重)
  ②如果消费者接收到消息却没有确认消息,连接也未断开,则RabbitMQ认为该消费者繁忙,将不会给该消费者分发更多的消息。
  关于Tomcat的面试题
  一、什么是Tomcat?
  Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
  二、tomcat结构目录有哪些?
  ①bin:启动和关闭tomcat的bat文件。
  ②conf:配置文件。
  ③l该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host)。
  ④l文件配置与web应用(web应用相当于一个web站点)
  ⑤l配置用户名密码和相关权限。
  ⑥lib:该目录放置运行tomcat运行需要的jar包。
  ⑦logs:存放日志,当我们需要查看日志的时候,可以查询信息。
  ⑧webapps:放置我们的web应用。
  ⑨work工作目录:该目录用于存放jsp被访问后生成对应的server文件和.class文件。
  三、如何配置Tomcat虚拟目录?
  1、在l中的节点下添加如下代码。path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径。
  2、进入到confCatalinalocalhost文件下,创建一个xml文件,该文件的名字就是站点的名字。
java面试题及答案2020
  四、Tomcat体系结构是怎样的?
  浏览器 - tomcat server- service -connector - engine(引擎) - host(主机) - web应用。
  五、Web请求在Tomcat请求中的请求流程是怎么样的?
  ①浏览器输入URL地址;
  ②查询本机hosts文件寻IP;
  ③查询DNS服务器寻IP;
  ④向该IP发送Http请求;
  ⑤Tomcat容器解析主机名;
  ⑥Tomcat容器解析Web应用;
  ⑦Tomcat容器解析资源名称;
  ⑧Tomcat容器获取资源;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。