文档章节

2.JMS消息模型

柠檬味的猫咪
 柠檬味的猫咪
发布于 2016/09/12 15:32
字数 648
阅读 5
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

JMS消息模型

1.P2P

1.1 P2P模式图

这里写图片描述

1.2 涉及到的概念

  1. 消息队列(Queue)
  2. 发送者(Sender)
  3. 接收者(Receiver)
  4. 每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时。

1.3 P2P的特点

  1. 每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)
  2. 发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列
  3. 接收者在成功接收消息之后需向队列应答成功

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

 

2. Pub/Sub

2.1 Pub/Sub模式图

这里写图片描述

2.2 涉及到的概念

  1. 主题(Topic)
  2. 发布者(Publisher)
  3. 订阅者(Subscriber)
    客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

2.3 Pub/Sub的特点

  1. 每个消息可以有多个消费者
  2. 发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。
  3. 为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。

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

 

消息的消费

在JMS中,消息的产生和消息是异步的。对于消费来说,JMS的消息者可以通过两种方式来消费消息。
○ 同步
订阅者或接收者调用receive方法来接收消息,receive方法在能够接收到消息之前(或超时之前)将一直阻塞
○ 异步
订阅者或接收者可以注册为一个消息监听器。当消息到达之后,系统自动调用监听器的onMessage方法。

 

本文转载自:http://blog.csdn.net/jiuqiyuliang/article/details/46701559

上一篇: 4.JMS编程模型
柠檬味的猫咪
粉丝 1
博文 12
码字总数 2030
作品 0
广州
后端工程师
私信 提问
日常开发方法、工具类 - openhandx common

OpenHandx-common整理了日常开发中可能经常用到的方法、工具类,也是openhandx系列的基础公共类。其中包括:反多线程、JMS连接池、多数据源的数据库连接池、自定义表达式运算、数据模型、树结...

辛巴8
2018/04/17
523
0
ActiveMQ 文件传输

官方文档:http://activemq.apache.org/message-features.html 文档中引用其他网页内容! 方案 使用场景 优点 缺点 消息发送 小文件传输(文件转换为byte[],然后安装正常消息传送) 小文件简...

古怪945
2015/06/22
328
0
jms和面向消息中间件

引进jms 1.兼容以前的application 2.应用间互联(异构的网络和不同的底层协议) 已经有各种消息通过许多技术 1.remote procedure calls(rpc):com,corba,dce 2.进程间,通知,消息队列的解决方...

泡海椒
2016/01/18
63
0
JMS : Java Message Service (Java消息服务)之一 [转]

引文来源 JMS : Java Message Service (Java消息服务)之一 - 采云摘月 - 博客园

junsun
2010/10/16
1K
0
现代IM系统中消息推送和存储架构的实现

前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微...

雨中沙漠
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

密码加密与微服务鉴权JWT详细使用教程

[TOC] 1.1、了解微服务状态 微服务集群中的每个服务,对外提供的都是Rest风格的接口,而Rest风格的一个最重要的规范就是:服务的无状态性。 什么是无状态? 1.服务端不保存任何客户端请求者信...

庭前云落
20分钟前
6
0
Xamarin.FormsShell基础教程(9)Shell相关类体系

Xamarin.FormsShell基础教程(9)Shell相关类体系 在Shell中,最为主要的类是Shell类。Shell类实现了大多数应用程序所需的基本UI功能的页面。除此以外,常用的类还有ShellContent、Tab、Fly...

大学霸
21分钟前
4
0
聊聊MVC、MVP、MVVM吧

先来介绍下本文结构: 三种框架的具体概念 在安卓开发上的写法、优缺点 1.概念 1.1 MVC MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模...

二营长的意大利炮手
38分钟前
4
0
如果解释Python,什么是.pyc文件?

我已经了解Python是一种解释型语言......但是,当我查看我的Python源代码时,我看到.pyc文件,Windows将其识别为“编译的Python文件”。 这些来自哪里? #1楼 Python代码经历了两个阶段。 第...

javail
44分钟前
4
0
.NET Core初览

初览的应用场景为游戏服务器开发。所以测试在侧重点上更强于IO和密集型计算 TODO

梦想游戏人
46分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部