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
相关推荐
Redis持久化 - RDB和AOF
描述MQ消息持久化,在队列管理器发生异常时,传送到队列中的信息怎样通过日志将信息恢复到队列中。
Go 关系持久化 - 一个ORM框架
Quartz2.2.1存储与持久化-基于Spring的配置 ,具体效果与过程请看博文http://blog.csdn.net/evankaka/article/details/45556207
rabbitmq + spring boot 消息确认、持久化、备用交换机、死信交换机等demo代码
sentinel-mysql规则持久化,持久化规则数据至mysql,包含数据表结构,配置文件,jar,一键启动
- RDB持久化机制: - RDB默认开启 - RDB存储二进制数据,RDB在持久化和读取持久化文件时,速度较快 ... - RDB默认持久化日志文件,将每次写操作的命令持久化到本地文件中,在持久化和读取持久化文件时,相对RDB较慢
iOS之数据持久化-NSUserDefaults,在进入后台模式时候,将进行数据保存!
jpa--2.持久化操作jpa--2.持久化操作jpa--2.持久化操作jpa--2.持久化操作jpa--2.持久化操作jpa--2.持久化操作jpa--2.持久化操作
spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...
Redis(Remote Dictionary Server)是一个开源的、使用ANSI C语言编写的、支持网络连接的、基于内存并可持久化的日志型Key-Value数据库,它提供了多种语言的API。Redis的主要特点包括: 数据类型丰富:Redis支持...
持久化工具-memory介绍1
HIBERNATE - 符合Java习惯的关系数据库持久化
任务调度的持久化功能,即新增修改删除之类的功能,这必须得要有的,不然都不知道后台都有什么作业在跑
Sentinel 1.8.1规则持久化-推模式【基于Nacos 1.3.2】sentinel重构后代码
连续2天改造Sentinel-Dashboard1.8源码做的持久化。经过本人测试好使。有任何问题可留言~
一个订阅通道,支持多个客户端监听,当某个客户端掉线后,再上线的时候可以收到它没有接收到的消息。