JMS

JMS

什么是消息中间件

将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序
1.消息异步接受
第一:避免系统相互等待,造成性能瓶颈
第二:只需要发送消息,不需要知道接受者,减少系统依赖,降低耦合度
2.消息的可靠性
确保消息在中间件里面可靠保存,只有接收方接受才删除,多个消息也可组成原子事务

什么是JMS

JMS Java Message Service,Java消息服务,是Java EE中的一个技术

什么是JMS规范

JMS定义了Java 中访问消息中间件的接口,并没有给予实现,实现JMS 接口的消息
中间件称为JMS Provider,例如ActiveMQ
JMS message:JMS的消息

JMS消息

* JMS消息由消息头 消息属性 消息体组成*

1:消息头:每个消息头字段都有相应的getter和setter方法
2:消息属性:如果需要除消息头字段以外的值,那么可以使用消息属性
3:消息体:封装具体的消息数据

JMS消息头属性

1:JMSDestination:消息发送的目的地:主要是指Queue和Topic
2:JMSDeliveryMode:传送模式(持久模式和非持久模式).
一条持久性的 消息应该被传送“一次仅仅一次”,如果JMS提供者出现故障,该消 息并不会丢失
一条非持久的消息最多会传送 一次,这意味这服务器出现故障,该消息将永远丢失
3:JMSExpiration:消息过期时间.JMSExpiration 被设为零,表示该消息永不过期
4:JMSPriority:消息优先级,从 0-9 十个级别,0-4 是普通消息,5-9 是加急消 息
5.JMSMessageID:唯一识别每个消息的标识,由JMS Provider 产生。
6.JMSTimestamp:一个JMS Provider在调用send()方法时自动设置的。它是消息被
发送和消费者实际接收的时间差
7:JMSCorrelationID:用来连接到另外一个消息.典型的应用是在回复消息中连接 到原消息。
8.JMSReplyTo:提供本消息回复消息的目的地址。
9.JMSType:消息类型的识别符。

JMS消息的消费方式

1:同步消费:通过调用消费者的receive方法从目的地中显式提取消息,receive 方法可 以一直阻塞到消息到达。
2:异步消费:异步消费:客户可以为消费者注册一个消息监听器,以定义在消息到达时所采取的动作

JMS domains:消息传递域

* JMS规范中定义了两种消息传递域:点对点 (PTP)消息传递域和发布/订阅消息传递域(pub/sub)*

P2P特点:
(1):每个消息只能有一个消费者(一个队列可以有多个消费者,但是一条消息只能被消费一次)
(2):消息的生产者和消费者之间没有时间上的相关性(无论消费者在生产者发送消 息的时候是否处于运行状态,它都可以提取消息。)

pub/sub:
(1):每个消息可以有多个消费者
(2):生产者和消费者之间有时间上的相关性,订阅一个主题的消费者只能消费自它 订阅之后发布的消息
JMS 规范允许客户创建持久订阅,这在一定程度上放松了时间 上的相关性要求
持久订阅允许消费者消费它在未处于激活状态时发送的消息。

JMS基本概念

1.Connection factory:连接工厂,用来创建连接对象,以连接到JMS的provider
2.JMS Connection:封装了客户与JMS 提供者之间的一个虚拟的连接
3.JMS Session:是生产或者消费消息的一个单线程上下文会话用于创建消息生产者(producer)、消息消费者(consumer)和消息 (message)等。会话提供了一个事务性的上下文,在这个上下文中,一组发送 和接收被组合到了一个原子操作中。
4.Destination:消息发送到的目的地
5.Acknowledge:签收
6.Transaction:事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值