如何创建/预配置的activemq.xml中持久订阅者(S),使这些订阅准备在ActiveMQ的启动

2019-09-19 01:51发布

如何创建/预配置的activemq.xml中持久订阅者(S),使这些订阅准备在ActiveMQ的大作? 至于如果用户是在离线状态。

我们期待知道用户的固定的(但可配置)数目。 想缓冲由1天开始出版商发送的所有短信息,如果不是所有的用户都起来。 不知道这是一个常见的情况,但在此先感谢您的帮助。

Answer 1:

这是一个非常常见的情况。 你实际上应该看到的是复合的目的地 ,而不是持久的主题(也有这个功能的问题,而不是被默认依然存在,因此,主要的一点消息没有幸存的经纪人中断负荷)。

使用这个方案,你建立了一个复合的话题,以每封邮件转发给了一些队列 - 每个用户专用的一个。

<destinationInterceptors>
  <virtualDestinationInterceptor>
    <virtualDestinations>
      <compositeTopic name="orders">
        <forwardTo>
          <queue physicalName="orders.consumer1" />
          <queue physicalName="orders.consumer2" />
        </forwardTo>
      </compositeTopic>
    </virtualDestinations>
  </virtualDestinationInterceptor>
</destinationInterceptors>

当你的用户最终连接到自己的队列通过这种方式,它是水渠送入它的消息。

提醒一句,请确保您的内存限制是足够大,以处理存储在这些队列中的邮件,或者你的经纪人会出现挂(经纪人函数调用生产流程控制)。

我看你是新用户,所以如果这个回答你的问题,请打勾。



Answer 2:

你可以考虑使用一个持久的队列(而不是一个主题),并使用队列浏览器(用户)接收消息。 在跟踪序列号的责任则是在用户端(不知道这是可行的,你的情况)。 队列浏览器不从耐用队列中删除邮件。 你要么必须与生存时间或者是使用一定时间段后,常规队列订户冲出旧的消息使用的消息。

耐用队列队列浏览器是在服务器上征税少 - 但你的用户推送更多的负荷。

希望能帮助到你。



文章来源: How to create/preconfigure durable subscriber(s) in activemq.xml so that these subscriptions are ready upon ActiveMQ starts up?