JMS&MQ系列之消息存储方式
2012-09-11 15:06
337 查看
1. 队列存储
采取先进先出模式,同一时间,消息只会发送给某一个消费者,只有当该消息被消费并告知已收到时,它才能在代理的存储中被删除。
对于持久性订阅来说,每一个消费者都会获取消息的拷贝。为了节约空间,代理的存储介质中只存储了一份消息,存储介质的持久订阅对象为其以后的被存储的消息维护了一个指针,消费者消费时,从存储介质中复制一个消息。消息被所有订阅者获取后才能删除。
2. KahaDB消息存储
从ActiveMQ5.3后,推荐使用KahaDB存储普通用途的消息。KahaDB是一种基于文件的消息存储机制,为了提高消息存储的可靠性和可恢复性,它整合了一个事务日志。KahaDB拥有高性能和可扩展性等特点。由于KahaDB使用的是基于文件的存储,所以不需要使用第三方数据库。
KahaDB消息存储机制为所有目的地使用一个索引,其索引使用一个事务日志。
KahaDB被使用在10000个活动连接的产品环境,每个连接都拥有一个分割的队列。
KahaDB可以通过配置或硬代码实现,以下是配置方式:
以下是硬代码方式:
KahaDB存储方式是所有存储方式中最快捷的一个。
下表是KahaDB的配置选项:
3. AMQ消息存储
AMQ消息存储与KahaDB消息存储类似,由一个提供可靠持续性的事务日志以及高效索引组成,当一个应用中,消息吞吐量是主要需求时,AMQ是最好的选择。但由于它为每个索引使用了两个分隔文件,而每个目的地都有一个索引,所以它不能被使用于每个代理拥有成百上千个队列的情况。ActiveMQ代理没有被完全关闭时,索引的覆盖也会很慢。这是因为所有的索引都需要被重建。
AMQ消息存储的配置如下所示:
下表是AMQ存储的配置选项:
4. JDBC消息存储
配置方式:
5. 内存消息存储
配置方式:
或者:
采取先进先出模式,同一时间,消息只会发送给某一个消费者,只有当该消息被消费并告知已收到时,它才能在代理的存储中被删除。
对于持久性订阅来说,每一个消费者都会获取消息的拷贝。为了节约空间,代理的存储介质中只存储了一份消息,存储介质的持久订阅对象为其以后的被存储的消息维护了一个指针,消费者消费时,从存储介质中复制一个消息。消息被所有订阅者获取后才能删除。
2. KahaDB消息存储
从ActiveMQ5.3后,推荐使用KahaDB存储普通用途的消息。KahaDB是一种基于文件的消息存储机制,为了提高消息存储的可靠性和可恢复性,它整合了一个事务日志。KahaDB拥有高性能和可扩展性等特点。由于KahaDB使用的是基于文件的存储,所以不需要使用第三方数据库。
KahaDB消息存储机制为所有目的地使用一个索引,其索引使用一个事务日志。
KahaDB被使用在10000个活动连接的产品环境,每个连接都拥有一个分割的队列。
KahaDB可以通过配置或硬代码实现,以下是配置方式:
以下是硬代码方式:
KahaDB存储方式是所有存储方式中最快捷的一个。
下表是KahaDB的配置选项:
3. AMQ消息存储
AMQ消息存储与KahaDB消息存储类似,由一个提供可靠持续性的事务日志以及高效索引组成,当一个应用中,消息吞吐量是主要需求时,AMQ是最好的选择。但由于它为每个索引使用了两个分隔文件,而每个目的地都有一个索引,所以它不能被使用于每个代理拥有成百上千个队列的情况。ActiveMQ代理没有被完全关闭时,索引的覆盖也会很慢。这是因为所有的索引都需要被重建。
AMQ消息存储的配置如下所示:
下表是AMQ存储的配置选项:
4. JDBC消息存储
配置方式:
5. 内存消息存储
配置方式:
或者:
相关文章推荐
- JMS学习(七)-ActiveMQ消息的持久存储方式之KahaDB存储
- JMS&MQ系列之JMS的请求和回应
- JMS&MQ系列之普通Java程序中加载配置
- JMS&MQ系列之简单JMS应用程序编写步骤
- JMS&MQ系列之JMS概述
- JMS&MQ系列之简单示例
- ActiveMQ的消息存储方式
- Android两种存储用户临时数据的方式比较:Preferences & Bundle
- runtime系列4&5---Message Forwarding-消息转发&类型编码
- SpringFramework4系列之SpringJMS:(四)异步接收消息 1.基本介绍
- Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送
- 安卓存储数据和文件系列2:共享参数(sharedpreferences)方式
- RocketMQ的消息存储
- Spring + ActiveMQ实现jms发送消息
- PVS让存储颤抖,系列博文之四:PVS的写缓存新技术之XenApp方式实测篇
- MQ消息流中如何对消息添加JMS消息头
- JMS两种消息方式
- 沙盒结构&常见的文件存储方式
- MQ发送普通消息(三种方式)
- sql 2005存储过程触发器出现 SQLNCLI" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持”解决