jms java面试_Java面试必备——JMS面试题(附答案)

Java消息服务,简称JMS,解决了在不同系统之间如何交换信息的问题,使得不同系统间在精确交换和格式化数据方面取得一致,因为JMS解决了这个问题,所以JMS是java程序员们需要掌握的一个技能。这篇文章整理了JMS面试题,有面试需要的朋友们一起来学习下面的内容吧。

1、JMS提供哪些消息传递类型?

答:JMS附带两种消息。分别是同步和异步。

2、同步消息类型和异步消息类型之间有什么区别?

答:同步消息:同步消息传递涉及一个客户端,它等待服务器响应消息。 消息能够双向流动。从本质上讲,这意味着同步消息传递是双向通信。即,发件人向接收方发送一条消息,接收方接收到此消息并向发送方回复。发件人直到收到收件人的答复后才发送其他消息。

异步消息:异步消息传递涉及一个不等待来自服务器的消息的客户端。事件用于触发来自服务器的消息。因此,即使客户端关闭,消息传递也将成功完成。 异步消息意味着这是一种单向通信,而通信流只是一种方式。

3、JMS提供什么类型的消息传递模型?

答:在消息传递世界中,它主要提供以下两种消息传递模型,并且这两种是常用的:

点对点模型:P2P消息传递模型由消息发送者,接收者,队列和消息组成。 生成消息的JMS客户端称为发送者。使用消息的JMS客户端称为接收方。在P2P模型中,发件人将消息发送到称为队列的目的地。接收者从同一队列中检索消息。

发布和订阅模型:发布/订阅模型由消息发布者,订阅者和主题组成。消息产生者称为发布者;消息产生者称为发布者。 消息使用者称为订户。 发布者发送消息而订阅者检索消息的目的地称为主题。 发布/订阅模型基于内容层次结构中节点的概念,其中发布者将消息发布到目的地,并且消息将广播到所有注册的订户。

4、JMS提供程序的用途是什么?

答:JMS提供程序是一个消息传递系统,它实现JMS接口并提供管理和控制功能。Java EE平台的实现包括JMS提供程序。JMS客户端是用java编程语言编写的程序或组件,它们产生和使用消息。它还指定了非JMS客户端的加密级别,消息的安全级别和最佳数据类型。

5、什么是字节消息?

答:BytesMessage对象用于发送包含未解释字节流的消息。它从Message接口继承,并添加一个字节的消息正文。消息的接收者提供字节的解释。BytesMessage方法主要基于java.io.DataInputStream和java.io.DataOutputStream中的方法。此消息类型用于现有消息格式的客户端编码。如果可能,应改用其他自定义消息类型之一。

6、JMS与RPC有何不同?

答:JMS本质上是异步的。当必须发送消息时,发件人会将消息发送给接收者。这样,发件人的工作就完成了,它将继续进行进一步的处理。接收者将接收到该消息并继续其自身的处理。接收到消息后,没有从接收方向发送方发送确认。这是因为JMS是异步的。在JMS中,消息的发送者和接收者之间没有耦合,因此,JMS允许动态添加新的发送者和接收者,从而管理一段时间内复杂性的变化。因此,JMS是松散耦合的。当发生意外故障时,JMS将存储待发送的消息。 系统启动后,存储的消息将被发送到相应的接收者。

远程过程调用(RPC),RPC本质上是同步的。与JMS不同,远程过程调用的调用者将调用该方法,并继续等待直到被调用的方法完成其执行。一旦调用的方法执行完成,控件就会返回到调用者。这是因为RPC在行为上是同步的,RPC在相互交互的系统之间建立了紧密的耦合。 当调用程序调用远程方法时,调用程序将被阻塞,直到响应返回给调用程序为止。

7、如何在JMS中向非java客户端传递消息?

答:如果java代码和非java代码可以就基于字节或文本的消息格式达成一致,则可以在它们之间交换消息,它可以消耗一条java消息。

8、什么是JMS会话及其用途?

答:会话是用于生成(生成)和消费(接收)消息的单线程上下文。JMS会话可以是本地事务,非事务或分布式事务。

会话有几个目的:(1)这是一个为消息生产者和消费者服务的工厂;(2)它提供了提供程序优化的消息工厂;(3)它支持一系列的交易,这些交易将其生产者和消费者的工作组合成原子单位;(4)它为消耗的消息和产生的消息定义序列顺序;(5)它保留消耗的消息,直到被确认为止;(6)它序列化向其消息使用者注册的消息侦听器的执行;(7)一个会话可以创建并服务多个消息生产者和使用者。

9、ActiveMQ与JMS之间的关系?

答:JMS只是定义了一组有关消息传送的规范和标准,并没有真正实现,也就说JMS只是定义了一组接口而已,就像JDBC抽象了关系数据库访问、JPA抽象了对象与关系数据库映射、JNDI抽象了命名目录服务访问一样,JMS具体的实现由不同的消息中间件厂商提供,比如Apache ActiveMQ就是JMS规范的具体实现,Apache ActiveMQ才是一个消息服务系统,而JMS不是。

10、JMS的最大优势是什么?

答:(1)异步:JMS天生就是异步的,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户端;(2)可靠:JMS保证消息只会递送一次,大家都遇到过重复创建消息问题,而JMS能避免该问题。

JMS通过提供一种与J2EE应用程序或传统系统交互的方法部分的解决了两个系统间数据交互的问题,是比较重要的一个小技能,所以希望上面整理的10道JMS面试题可以帮助到大家学习JMS的基础知识,毕竟java面试还是以考察基础为主,希望大家可以好好学习上面的内容,顺利通过面试。

你可能感兴趣的:(jms,java面试)