5.5 内存消息存储

本文介绍了ActiveMQ中内存消息存储的配置方法及其应用场景。内存消息存储可以显著提高消息的分发速度,适用于需要快速处理且消息量有限的情况。文中详细展示了如何通过XML配置文件及Java代码来启用内存消息存储。

5.5 内存消息存储-
    
    内存消息存储将所有的持久化消息放到内存中.内存消息存储没有活动的缓存,你必须小心的设置JVM以及内存大小限制,以便代理有足够的内存容纳所有的消息.
当你确定代理只会存储有限容量的消息时,内存消息存储将会变得很有用,此时消息分发速度将会非常快.但是内存消息存储一般用于小规模的测试,即,你打算测试与JMS代理的交互,
但不想在代理的消息存储启动时多花时间,或者不想在测试结束后卷入清理消息存储的麻烦中.

5.5.1 配置内存消息存储
配置内存消息存储很简单.配置内存消息存储是只需要将broker的persistent属性值设置为false
(该属性默认值为true).下面是配置ActiveMQ内存消息存储示例:

<?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
broker.setPersistent(false);
//Add a transport connector
broker.addConnector(“tcp://localhost:61616”);
//now start the broker
broker.start();

}
注意,上面斜体部分设置broker对象持久化属性为false,这跟在前面XML文件中的配置是等价的.
目前没有必要修改ActiveMQ的消息存储.如果你打算为一个应用程序修改消息存储,推荐使用一个新的
ActiveMQ代理,或者等到你的程序处理了所有已发送的消息,然后关闭ActiveMQ代理,然后配置新的
消息存储,最后重启代理.


 


 



转载于:https://my.oschina.net/goudingcheng/blog/631362

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值