Amazon MQ消息传递和持久性配置

我有一个用例,其中队列需要达到24/7,所以冗余是关键,因此需要多可用区。除此之外,我想确保发送到队列的消息满足以下要求,但是我之前从未配置过AMQ或activeMQ,所以我有点迷路。

  1. 消息在队列重新启动期间保留=持久模式
  2. 多个使用者可以阅读消息
  3. 第一次读取(确认)后,消息不会立即脱离队列
  4. 可能将消息的生命周期配置为在48小时之类的时间范围内可用。

关于满足这些要求的XML配置的任何示例或指南都是很棒的。我没有在网上找到2-4项。

xiaoleikesa 回答:Amazon MQ消息传递和持久性配置

ActiveMQ

ActiveMQ是符合JMS的消息代理。您列出的大多数要求是由生产者方的属性控制的。

我在答案中使用Java代码段。

  1. MessageProducer producer = session.createProducer(session.createQueue(queueName)); producer.setDeliveryMode(DeliveryMode.PERSISTENT);

  2. 向多个收件人发送邮件是一种“发布者-订阅者”模式,而不是“生产者-消费者”模式。创建一个主题,该主题是多个客户端订阅的目标。否则,您希望每个收件人都有一个队列。 JMS Topic Example

  3. 在以下选项中选择适合您的任何模式:https://docs.oracle.com/cd/E19798-01/821-1841/bncfw/index.html。您可能需要CLIENT_ACKNOWLEDGE并使用acknowledge()方法手动发送确认。在JMS会话上设置了确认模式:

    Session session = connection.createSession(false,Session.CLIENT_ACKNOWLEDGE);

  4. producer.setTimeToLive(ttl);

Amazon SQS(简单队列服务)

Amazon SQS也遵守JMS协议,因此上面的1,3,4的ActiveMQ API示例对于SQS仍然有效,因为SQSConnection类扩展了javax.jms.Connection。请按照Getting Started指南进行更详细的操作。

  1. SQS提供有关消息持久性(https://aws.amazon.com/message-queue/features/)的保证;

  2. Pub / Sub模式也可用于Amazon MQ(https://aws.amazon.com/pub-sub-messaging/)。

本文链接:https://www.f2er.com/3094345.html

大家都在问