5.5内存消息仓库

内存消息仓库在内存中持有所有持久化消息。没有活跃的涉及超高速缓存,所以你不得不注意JVM和内存同时限制你的设置,是否足够容纳可能在同一时间存在的所有消息。
如果你知道代理将只是存储一定量的消息,内存消息仓库会是有用的,消息通常将快速消耗。但是对于小的想证明于JMS代理交互的测试用例它真的显示出它的威力,但是不要想招致消息仓库开始时间的花费,或者在测试结束后清理消息的麻烦事。
5.5.1配置内存仓库
配置内存仓库很简单。内存仓库是当代理的persistent属性被设置成false(默认情况为true)时使用的实现。这里有一个配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<broker brokerName="test-broker"
persistent="false"
xmlns="http://activemq.apache.org/schema/core">
<transportConnectors>
<transportConnector uri="tcp://localhost:61635"/>
</transportConnectors>
</broker>
</beans>
通过在broker结点上设置persistent属性为false,这有效地告诉代理不要持久化消息文长时间的存储。替代的,ActiveMQ代理会在内存中持有消息知道消息被消费或者ActiveMQ代理被停止。
用内存仓库嵌入一个ActiveMQ代理是简单的。下面的示例通过内存仓库启动代理:

import org.apache.activemq.broker.BrokerService;
public void createEmbeddedBroker() throws Exception {
BrokerService broker = new BrokerService();
//configure the broker to use the Memory Store
[b]broker.setPersistent(false);[/b]
//Add a transport connector
broker.addConnector("tcp://localhost:61616");
//now start the broker
broker.start();
}

注意加粗的文字在代理对象上设置persistence为false。这和前面的XML配置示例是相同的。
现在没有现成工具箱ActiveMQ的消息仓库从一种转变为另一种。如果你想要为应用程序改变消息仓库,建议你在新的ActiveMQ代理上这样做,或者等待你的应用消费发送的所有消息,然后关闭ActiveMQ代理,为它重新配置消磁仓库,然后重启它。
这章讨论了在ActiveMQ中的实现消息持久化的多种消息仓库实现。另一个话题,讨论一些关于消息持久化在ActiveMQ代理中是一种为非持久主题主题订户更专业的ActiveMQ消息代理缓存案例。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值