`

消息和主题(持久化-非持久化)分类--持久化订阅

    博客分类:
  • JMS
 
阅读更多

1. 持久化 VS 非持久化, 持久化订阅

 

持久化消息 可以通过<broker> 的 persistent="true" 设置为true(默认值).

 

或者设置 producer.setDeliveryMode(DeliveryMode.PERSISTENT); //设置保存消息

然后再 connection.start();

 

 

 

2. 持久化订阅

 

默认情况下(使用ActiveMQ5.8.0版本默认配置启动代理) 使用publisher发送100个消息,如果发送消息时

消息发送完成之前,消费者没有启动,发送完成后再启动消息消费者,此时消费者不能接收消息.

因为消息已经发送过了.

 

使用持久化订阅可以让代理在消费者不在线时为消费者保存消息.当消费者上线了,可以再次接收并处理消息.

 

 

这时,消费者需要特殊处理,

首先在创建连接时要connection.setClientID("client-name"); 注册消费者.

然后MessageConsumer consumer = session.createDurableSubscriber(topic, "my-sub-name");

创建一个持久化订阅.

消费者创建好之后,要先运行一次,以便向消息代理注册消费者.

 

参考 :http://blog.chenlb.com/2010/01/jms-topic-durable-subscriber.html

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    IBM WebSphere MQ消息持久化

    消息持久化的方案中,消息在队列中的保存时间与三个设置有关:队列的DEFPSIST属性、消息的Persistence持久性属性和消息的Expiry过期时间属性。其中,队列的DEFPSIST属性是在创建队列时设置,而消息的Persistence和...

    ActiveMQ订阅模式持久化实现

    这通常涉及修改`activemq.xml`,设置`&lt;destinationPolicy&gt;`元素中的`&lt;policyEntry&gt;`,将`persistent`属性设为`true`,以确保消息在存储和传输过程中被持久化。 2. **创建订阅者**:在Java代码中,消费者需要通过`...

    rabbitmq + spring boot demo 消息确认、持久化、备用交换机、死信交换机等代码

    通过设置消息和交换机为持久化,即使RabbitMQ重启,消息也不会丢失。 3. **备用交换机(Backup Exchange)**:在主交换机故障时,备用交换机可以接管消息路由,提供高可用性。这可以通过配置镜像队列或者使用...

    sentinel-mysql规则持久化,持久化规则数据至mysql,包含数据表结构,一键启动

    `runSentinelMysql.bat` 是一键启动脚本,它的作用是简化 Sentinel Dashboard 和规则持久化服务的启动流程。运行这个批处理文件,应该会同时启动 Dashboard 和与 MySQL 的连接,使得 Sentinel 能够从数据库中读取和...

    Quartz2.2.1存储与持久化-基于Spring的配置

    在Quartz 2.2.1版本中,对存储和持久化进行了优化,以支持更高效、可靠的作业调度。在这个基于Spring的配置中,我们将深入探讨如何在Spring应用中集成Quartz,实现任务的存储和持久化。 首先,我们需要在Spring配置...

    React通过redux-persist持久化数据存储的方法示例

    redux-persist是专为Redux设计的一个中间件,它支持多种不同的持久化存储方式,最常见的是将数据保存到localStorage和sessionStorage中。本示例将会展示如何在React应用中使用redux-persist来实现全局状态的持久化...

    Redis持久化 - RDB和AOF

    “Redis持久化 - RDB和AOF” Redis持久化是指将数据库中的数据保存到永久存储设备中,以避免数据丢失。Redis提供了两种持久化方式:RDB(快照方式)和AOF(写日志方式)。 RDB(Redis Database)是一种快照方式的...

    持久化sentinel-dashboard1.8源码

    将 Sentinel-Dashboard 的配置持久化到 Nacos,意味着所有的流控规则、降级策略等都可以存储在 Nacos 上,这样不仅方便了配置的管理,还能实现实时更新和多环境共享。 Sentinel-Dashboard 与 Nacos 集成的过程中,...

    RDB持久化机制: - RDB默认开启 - RDB存储二进制数据

    - RDB持久化机制: - RDB默认开启 - RDB存储二进制数据,RDB在持久化和读取持久化文件时,速度较快 ... - RDB默认持久化日志文件,将每次写操作的命令持久化到本地文件中,在持久化和读取持久化文件时,相对RDB较慢

    spring+activemq topic持久化订阅

    spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...

    redis 可持久化 Key-Value数据库

    Redis的持久化机制主要有两种方式:RDB(Redis Database Backup)和AOF(Append Only File)。RDB是在特定时间点对数据库进行快照保存,生成一个纯二进制文件,这种方式持久化效率高,恢复速度快,但可能会丢失最近...

    activeMQ mysql 持久化

    压缩包中的`SenderPersistent.java`和`ReceiverPersistent.java`可能是示例代码,分别展示了如何创建一个发送持久化消息的生产者和接收持久化消息的消费者。在这些代码中,可以看到如何使用ActiveMQ的API来设置消息...

    iOS之数据持久化-NSUserDefaults

    在iOS开发中,数据持久化是一项至关重要的技术,它使得应用程序在关闭或设备重启后仍能保留用户...在开发过程中,根据具体需求选择合适的数据持久化策略,合理利用NSUserDefaults,可以有效提高应用的性能和稳定性。

    行业分类-设备装置-基于持久化消息队列传输消息的方法及消息传输装置.zip

    标题中的“行业分类-设备装置-基于持久化消息队列传输消息的方法及消息传输装置”表明,这是一个关于工业设备或系统通信技术的主题,具体涉及的是使用持久化消息队列进行消息传输的技术。消息队列是一种在分布式系统...

    Quartz.Net进阶-持久化管理.doc

    任务调度的持久化功能,即新增修改删除之类的功能,这必须得要有的,不然都不知道后台都有什么作业在跑

    Sentinel-Dashboard1.8-持久化-放心下载

    连续2天改造Sentinel-Dashboard1.8源码做的持久化。经过本人测试好使。有任何问题可留言~

    Go-moss-一个golang的简单快速有序可持久化key-val存储库

    以上就是关于Go-moss的基本介绍,它是一个强大且灵活的Key-Value存储库,适合于多种应用场景,尤其在需要高性能、有序性和持久化特性的场景下表现出色。通过深入理解其设计原理和使用方法,开发者可以充分利用它来...

    Sentinel 1.8.1规则持久化-推模式【基于Nacos 1.3.2】sentinel重构后代码

    在 Sentinel 1.8.1 中,对规则持久化进行了重构,这意味着原有的实现可能有了一定程度的优化和改进。重构通常是为了提高代码的可读性、可维护性和性能。对于 Sentinel 规则持久化来说,重构可能涉及了更好的数据结构...

Global site tag (gtag.js) - Google Analytics