hornetQ中的max-size-bytes和paging

时间:2012-06-25 10:45:20

标签: jms hornetq

默认情况下,

队列在hornetQ中是持久的。那么我们为什么要用地址配置max-size-bytes和paging呢?所有消息都应存储在磁盘上。 hornetQ中有一个例子documentation

<address-settings>
   <address-setting match="jms.someaddress">
      <max-size-bytes>104857600</max-size-bytes>
      <page-size-bytes>10485760</page-size-bytes>
      <address-full-policy>PAGE</address-full-policy>
   </address-setting>
</address-settings>

这是非持久性队列吗?或非持久性消息。 (它没有在文档中提及)

1 个答案:

答案 0 :(得分:2)

据我所知,max-size-bytes是内存中队列的最大大小,而page-size-bytes是磁盘中每个分页文件的大小。

您可能希望定义max-size-bytes,否则可能会使堆内存耗尽。执行此操作后,应在达到队列最大大小时定义系统的行为;你可以阻止生产者,DISCARD即将发布的消息,或者PAGINATE进入磁盘。然后你可能想要定义在需要的时候由hornetq创建的分页文件的大小。