JMS小记

作者: 无聊夫斯基 | 来源:发表于2018-01-07 20:22 被阅读0次

前几天组长面试别人的时候问了些关于JMS的问题,后来顺便问了我一下。hmmm没接触过这技术当然是一脸懵逼,所以索性花了点时间上网搜了一下相关的内容然后自己总结一下。

什么是JMS?

JMS是Java消息中间件服务的应用程序接口,用于Java平台中应用程序之间的异步通信。到这里想提一下MQ,MQ是应用程序对应用程序之间的通信方法,是遵循AMQP协议的具体实现和产物。

如何消费JMS产生的消息?

JMS中消息的产生和消费是异步的。但是消息被消费的方式有2种。

1.同步的消息消费方式。

消息接收者调用receive方法接收信息,在接到消息之前(或者超时前)一直阻塞。

2.异步的消息消费方式。

消息接收者注册消息监听器,消息到达后调用监听器的onMessage方法。

消息消费模型

1.点对点模型

每个消息只有一个接收者,发送者和接收者没有依赖关系。接收者接收成功有反馈信息。

如果希望每个消息都被成功处理应该使用该模型。

2.发布/订阅模型

每个消息可以有多个接收者,有时间依赖,必须订阅之后才能消费消息。

因此订阅者必须要一直处于在线状态。

允许创建持久化订阅,使没有激活的订阅者也能收到消息。

JMS对象模型

一般一个JMS对象模型包括以下几个元素。

1.ConnectionFactory 

用于创建发送端和接收端之间连接的工厂类。针对不同的消息模型有 QueueConnectionFactory和TopicConnectionFactory,也可以在Tomcat的context.xml中配置然后通过JNDI来查找。

PS:JNDI是一个标准规范,类似JDBC,JMS等规范,为开发人员提供了查找和访问各种命名和目录服务的通用、统一接口。

2.Connection

发送端和接收端之间建立的连接,根据消息模型不同可以使用QueueConnection或者TopicConnection。用于创建Session。

3.Session

操作消息的接口。可以通过session创建生产者、消费者、消息等等。提供事务功能用于发送/接收多个消息。也分QueueSession和TopicSession。

4.Sender

由Sessoin创建,将消息发送到destination。根据消息模型不同可以使用QueueSender或者TopicPublisher。

5.Receiver

由Session创建,接收Destination发来的信息。根据消息模型不同可以使用QueueReceiver或者TopicSubscriber。可以通session的createDurableSubscriber方法来创建持久化的订阅者。

6.Destinatoin

消息生产者的发送目标或者消息接受者的消息来源。 实际上就是Queue、Topic的对象。

7.MessageListener

消息监听器。如果注册监听器,一旦消息达到就自动调用onMessage方法。

JMS提供五种不同的消息正文格式用于消息的发送以及接收。

1.StreamMessage -> 数据流消息

2.MapMessage -> 键值对消息

3.TextMessage -> 字符串消息

4.ObjectMessage -> 序列化对象消息

5.BytesMessage ->未解释字节数据流消息

相关文章

  • JMS小记

    前几天组长面试别人的时候问了些关于JMS的问题,后来顺便问了我一下。hmmm没接触过这技术当然是一脸懵逼,所以索性...

  • 深入掌握JMS

    深入掌握JMS(一):JMS基础 1. JMS基本概念 JMS(Java Message Service) 即Ja...

  • JMS 初探

    本文参考链接JMS入门教程JMS的API学习总结JMS定义: JMS(Java Message Service,J...

  • 18. Jmeter-取样器二

    jmeter-sampler介绍与使用 JMS Point-to-Point JMS Publisher JMS ...

  • 1JMS基本概念

    JMS provider 实现JMS接口和规范的消息中间件 JMS message JMS的消息,消息由3部分组成...

  • 1-2 AMQP协议

    JMS JMS简介 JMS(JAVA Message Service,java消息服务)是java的消息服务、其提...

  • java中间件之jms

    一、JMS简介 1.1 JMS是什么 JMS Java Message Service Java消息服务。是JAV...

  • 02 JMS(Java Messaging Service)

    1 JMS规范 1.1 JMS介绍: Java消息服务(Java Message Server) 及JMS,是一个...

  • 第二章、ActiveMQ介绍

    一、JMS规范 1.基本概念 JMS是java消息服务,JMS的客户端(或者分布式应用)之间可以通过JMS服务进行...

  • 2019-03-05

    什么是jms jms(java message service) Java消息服务, jms是一种规范是jdk底层...

网友评论

      本文标题:JMS小记

      本文链接:https://www.haomeiwen.com/subject/wwpmnxtx.html