首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Amazon消息传递和持久性配置

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

Stack Overflow用户
提问于 2019-11-15 15:32:41
回答 1查看 920关注 0票数 0

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

  1. 在队列重新引导期间保留消息=持久性模式
  2. 消息可以被多个使用者读取。
  3. 消息在第一次读取(确认)后不会立即从队列中掉下来。
  4. 可能会将邮件的生存期配置为48小时这样的时间窗口。

任何满足这些需求的XML配置示例或指南都将是非常棒的。我在网上找不到2-4的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 12:50:14

ActiveMQ

ActiveMQ是一个与JMS兼容的消息代理。您列出的大多数需求都是由生产者端的属性控制的。

我在答案中使用Java片段。

  1. MessageProducer producer = session.createProducer(session.createQueue(queueName)); producer.setDeliveryMode(DeliveryMode.PERSISTENT);
  2. 向多个收件人发送消息是“publisher-订户”模式,而不是“生产者-消费者”模式。创建一个用于多个客户端订阅的主题。否则,您希望每个收件人都有一个队列。JMS主题示例
  3. 在以下选项中选择适合您的任何模式:https://docs.oracle.com/cd/E19798-01/821-1841/bncfw/index.html。很可能需要CLIENT_ACKNOWLEDGE并使用acknowledge()方法手动发送ack。在JMS会话上设置了确认模式: Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
  4. producer.setTimeToLive(ttl);

Amazon (简单队列服务)

Amazon也遵循JMS协议,所以上面关于1,3,4的ActiveMQ API示例对于SQS仍然有效,因为SQSConnection类扩展了javax.jms.Connection。请按照快速入门指南获得更详细的步骤。

  1. SQS提供了有关消息持久性(https://aws.amazon.com/message-queue/features/)的保证;
  2. Pub/Sub模式也适用于Amazon (https://aws.amazon.com/pub-sub-messaging/)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58880179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档