5.5 内存消息存储

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代理,而后配置新的
消息存储,最后重启代理.


 


 



apache

相关文章
相关标签/搜索