美文网首页
java消息队列,JMS的通信模式

java消息队列,JMS的通信模式

作者: alcohol和cat | 来源:发表于2019-08-24 22:10 被阅读0次

JMS具有两种通信模式:

1、Point-to-Point Messaging Domain (点对点)

2、Publish/Subscribe Messaging Domain (发布/订阅模式)

在JMS API出现之前,大部分产品使用“点对点”和“发布/订阅”中的任一方式来进行消息通讯。JMS定义了这两种消息发送模型的规范,它们相互独立。任何JMS的提供者可以实现其中的一种或两种模型,这是它们自己的选择。JMS规范提供了通用接口保证我们基于JMS API编写的程序适用于任何一种模型。

1.P2P模式

P2P模式包含三个角色:消息队列(Queue),发送者(Sender),接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时。

P2P的特点

每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)

发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列

接收者在成功接收消息之后需向队列应答成功

如果希望发送的每个消息都会被成功处理的话,那么需要P2P模式。

2.Pub/Sub模式

包含三个角色主题(Topic),发布者(Publisher),订阅者(Subscriber) 多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

Pub/Sub的特点

每个消息可以有多个消费者

发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息

为了消费消息,订阅者必须保持运行的状态

为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。

如果希望发送的消息可以不被做任何处理、或者只被一个消息者处理、或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型。

相关文章

  • java消息队列,JMS的通信模式

    JMS具有两种通信模式: 1、Point-to-Point Messaging Domain (点对点) 2、Pu...

  • 分布式-5-JMS

    JMS(Java Message Service) API规范 模式点对点发布订阅 点对点 组成消息队列(Queu...

  • Oozie-JMSAccessorService

    功能:提供JMS通信服务:JMS(JAVA Message Service,java消息服务)API是一个消息服务...

  • JMS系列(三)-java操作JMS Topic实例

    在上一篇介绍如何通过java往jms消息队列里面写消息和读取消息,本文介绍如何通过java往jms主题里写消息和读...

  • 1-2 AMQP协议

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

  • Java-JMS消息队列(ActiveMQ)

    认识消息队列 JMS消息队列 JMS对象模型 1)连接工厂。连接工厂(ConnectionFactory)是由管理...

  • Java消息队列--JMS概述

    1. 什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Jav...

  • Java消息队列--JMS概述

    1、什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java...

  • ActiveMQ概念

    先看概念activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定义最常见的几种消息通信模式主要有发...

  • kafka原理

    消息队列通信的模式 通过上面的例子我们引出了消息中间件,并且介绍了消息队列出现后的好处,这里就需要介绍消息队列通信...

网友评论

      本文标题:java消息队列,JMS的通信模式

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