分布式-信息方式- JMS基本概念
JMS基本概念
■JMs是什么
JMS Java Messag/ Servite,Java消息服务,是 Java EE中的一个技术
■JMs规范
JMS定义a和访问消息中间件的接口,并没有给实现,实现]s接口的消息
中间件称为JMS Provider。例如ActiveMQ
JMS provider: 实现jms接口和规范的信息中间件
JMS message :jms的信息,jms信息有三部分组成
1:消息头:每个消息头字段部有相应的getter和 serter:方法
2:消息属性:如果需要除消息头字段以的值,那么以使用消息属性
3:消息体:封装具体的消息数据
JMs producer:消息生产者,创速和发送M消息的客户端应用
JMS consumer:消息消费者,接收和处理W消息的客户端应用
消息的消费可以采用以下两种方法之一:
1:同步消费:通过调用消费者的 receive方法从目的地中显式提取消息, receive方法可
以一直阻塞到消息到达。
2:异步消费:客户可以为消费者注册一个消息监听器,以定义在信息到达时所采取动作
JMS domains:消息传递域,JMs规范中定义了两种消息传递域:点对点( point-to-
point,简写成PTP)消息传递域和发布/订阅消息传递域( publish/ subscribe,简写
成pub/sub)
1:点对点消息传递域的特点如下:
(1)每个消息只能有一个消费者
(2)消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发送消
息的时候是否处于运行状态,它都可以提取消息

2:发布/订阅消息传递域的特点如下
(1)每个消息可以有多个消费者
(2)生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费自它
订阅之后发布的消息。JMs规范允许客户创建持久订阅,这在一定程度上放松了时
上的相关性要求。持久订阅允许消费者消费它在未处于激活状态时发送的消息
3:在点对点消息传递域中,目的地被称为队列( queue);在发布/订阅消息传递域中,
目的地被称为主题( topic)

Connection factory:连接工厂,用来创建连接对象,以连接到JMS的 provider
JMS Connection:封装了客户与JMS提供者之间的一个虚拟的连接
JMS Session:是产和消费消息的一个单线程上下文
会话用于创建消息生产者(preduce)、消息消费者( consumer)和消息
( message)等。会话提供了一个事务性的上下文,在这个上:下文中,一组发送
和接收被组合到了一个原子操作中。
Destination:消息发送到的日的地
Acknowledge:签收
Transaction:事务
JMS client:用来收发消息的Java应用
Non- JMS client:使用JM5 provider本地API写j的应用,用来替换 JMS API实现收
发消息的功能,通常会提供其他的一些特寺性,比如: CORBA、RMI等。
Administered objects:预定义的JM对象,通常在 provide规范中有定义,提
供给JM客厂广「来访问,比如: ConnectionFactory和 dEstination
分布式-信息方式- JMS基本概念的更多相关文章
- 分布式-信息方式-JMS大纲
一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息, ...
- 分布式-信息方式-JMS Topic示例
Topic消息 非持久的 Topic消息示例对于非持久的 Topic消息的发送 基本跟前 ...
- 分布式-信息方式-JMS信息结构
JMS的消息结构JMS消息由以下几部分组成:消息头,属性和消息体消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如下:1: JMSDestination:由send方法设置2: JMSDe ...
- 分布式-信息方式-JMS可靠性机制
JMS的可靠性机制1.消息接收确认 JMS消息只有在被确认之后,才认为已经被成功地消费了.消息的成功消费通常包含三个阶段:客户接收消息.客户处理消 ...
- 分布式-信息方式-JMS Queue示例
代码 package test.mq.helloword; import javax.jms.Connection; import javax.jms.ConnectionFactory; impor ...
- 分布式-信息方式-ActiveMQ的Destination高级特性3
虚拟destination用来创建逻辑destination,客户端可以通过它来生产和消费消息,它会把消息映射到物理destination. ActiveMQ支持2种方式: 1:虚拟主题(Virtua ...
- 分布式-信息方式-ActiveMQ的Destination高级特性1
ActiveMQ的Destination高级特性 Destination高级特性----->Composite Destinations 组合队列Composite Destinations : ...
- 分布式-信息方式-ActiveMQ的集群
ActiveMQ的集群Queue consumer clusters ActiveMQ支持 Consumer对消息高可靠性的负载平衡消费,如果一个 Consumer死掉,该消 ...
- 分布式-信息方式-ActiveMQ静态网络连接的容错
容错的链接Failover Protocol 前面讲述的都是client配置链接到指定的 broker上.但是,如果 Broker的链接失败怎么办呢?此时, Client有两个选项:要么立刻死掉,要么 ...
随机推荐
- EBS自动行号,行金额自动汇总到头,金额根据币种编号总结
一.自动行号实现 1.方法一: 只需要将“序号”定义成公式,并将公式设置为:get_block_property('block_name',current_record)就可以实现了,或者把这行语句放 ...
- 梳理common-io工具包
title: 梳理common-io工具包 comments: false date: 2019-08-28 14:21:58 description: 对common-io工具包中的常用类进行整理, ...
- Django框架——基础之路由系统(urls.py)
1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...
- 两个实体类 复制 copy 工具类
import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Date; public class ...
- 数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties
数据库学习笔记3 基本的查询流 2 order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.pers ...
- SSD源码解读——损失函数的构建
之前,对SSD的论文进行了解读,可以回顾之前的博客:https://www.cnblogs.com/dengshunge/p/11665929.html. 为了加深对SSD的理解,因此对SSD的源码进 ...
- Chrome OS 更新新版本可让Linux访问USB连接的Android设备
谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75.本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Lin ...
- Python名称空间与作用域
什么是名称空间? 比如下图的长方形代表内存,在这个内存里我要设置一个变量100,那么这个变量得有个门牌号,就叫他a吧,但其实变量不是这么存储的,他其实的存储方式是这样的,他会有一个名称空间,这个名称空 ...
- python之django_form组件笔记
Form字段 Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始 ...
- CLI
命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行. ...