ActiveMQ支持的传输协议

本文详细探讨了JMS中的点对点和发布/订阅模式特点,消息结构,事务处理,以及PTP和Pub/Sub模型的应用。重点讲解了持久订阅、本地事务和不同确认模式。同时涵盖了如何在Broker中启动嵌入式服务器和消息消费的注册过程。
摘要由CSDN通过智能技术生成

jms domains: 消息传递域

  1. 点对点(queue)

    特点:

    1. 每个消息只能别消费一次
    2. 生产者和消费者没有时间上的相关性
  2. 发布/订阅(topic)

    特点:

    1. 每个消息可以有多个消费者
    2. 生产者和消费者有时间上的相关性,消费者只能消费自他订阅之后发布的消息。持久订阅允许消费者消费他在未处于激活状态时发送的消息;

在这里插入图片描述

JMS的消息结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

消息的机构体

在这里插入图片描述
在这里插入图片描述

JMS的可靠性
  1. 事务性会话中,当一个事务被提交的时候,确认自动发生。

  2. 非事务绘画中,消息何时被确认取决于会话时的应答模式(acknowledgement mode)。

    该参数有三个可选值:

    • Session.AUTO_ACKNOWLEDGE, 从receive方法返回或者从MessageListener.onMessage方法成功返回的时候,自动确认。
    • Session.CLIENT_ACKNOWLEDGE,客户通过调用消息的acknowledge方法确认消息,注意:这种模式中,确认是会话层中进行的,确认一个被消费的消息将自动确认所有已被会话消费的消息。
    • Session.DUPS_ACKNOWLEDGE,该选择只是会话迟钝的确认消息的提交。如果JMS provider失败,那么会导致一些重复的消息。如果重复,那么JMS provider 必须把消息头的JMSRedelivered字段设置为true.
  3. 持久订阅

    消息生产者必须使用PERSISTENT提交消息。客户可以通过会话上createDurableSubscriber方法来创建一个持久订阅,该方法的第一个参数必须是topic。第二个参数是订阅的名称。

在这里插入图片描述

  1. 本地事务,使用本地事务来组合消息的发送和接受。jms session 接口提供了commit和rollback方法。

    注意 如果使用请求/回复机制,即发送一个消息,同事希望在同一个事务中等待接受消息的回复,那么程序将被挂起,因为直到事务提交,发送操作才会真正执行。

JMS的PTP模型

特点:

  1. 如果在session关闭时,消息收到但没有被签收(acknowledge),当消费者下次链接到相同的队列时,这些消息还会被接受
  2. 如果用户在receive方法中设定了消息选择条件,不符合的消息会留在队列中,不会被收到
  3. 队列可以长久的保存消息直到消费者收到消息。不会丢失,充分体现了异步传输模式的优势。

JMS的Pub/Sub模型

特点:

  1. 消息订阅分持久订阅和非持久订阅,非持久订阅离线时,不会收到这个时间段的主题消息
  2. 如果用户在receive方法中设定了消息选择条件,不符合的消息会留在队列中,不会被收到
  3. 非持久订阅下,不能恢复和重新派送一个未签收的消息,只有持久订阅才能恢复和重新派送一个未签收的消息
  4. 当所有的消息必须被接受,则用持久订阅。当丢失消息能够被容忍,则用非持久订阅
持久的Topic消息
  1. 需要在连接上设置消费者id,用来识别消费者
  2. 需要创建TopicSubscriber来订阅
  3. 要设置好了在start这个connection
  4. 一定要先运行一次,等于向消息服务中间件注册这个消费者,然后再发送消息

Broker:相当于一个ActiveMQ服务器实例

嵌入式启动broker
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值