队列在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>
这是非持久性队列吗?或非持久性消息。 (它没有在文档中提及)
答案 0 :(得分:2)
据我所知,max-size-bytes是内存中队列的最大大小,而page-size-bytes是磁盘中每个分页文件的大小。
您可能希望定义max-size-bytes,否则可能会使堆内存耗尽。执行此操作后,应在达到队列最大大小时定义系统的行为;你可以阻止生产者,DISCARD即将发布的消息,或者PAGINATE进入磁盘。然后你可能想要定义在需要的时候由hornetq创建的分页文件的大小。