首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveMQ Artemis

ActiveMQ Artemis
EN

Stack Overflow用户
提问于 2018-12-03 23:05:46
回答 1查看 1.9K关注 0票数 0

我正在尝试实现ActiveMQ Artemis。Artemis是ActiveMQ的一部分吗?

我正在努力使定期任务延迟和进度-消息传递ActiveMQ,但唯一的工作是延迟排定-讯息。文档中有关于核心API的说明:

还可以使用核心API发送调度消息,方法是在发送之前在核心消息上设置相同的属性。

因此,这可能并不意味着我可以设置ActiveMQ属性。

我需要具有以下功能的任何消息队列:

  1. 重复任务(ActiveMQ“经典”)
  2. 重复任务检测(ActiveMQ Artemis)
  3. 数据持久化
  4. 消息修改-从队列中删除或更改重复延迟
  5. 弹簧集成
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 16:15:06

是一个消息代理,它是ActiveMQ项目的一部分。然而,它与“经典”ActiveMQ broker代码库是分开的。它基于一个更新的、基本上是非阻塞的设计,它支持所有的协议以及与ActiveMQ 5.x相同的许多功能。ActiveMQ社区当前的目标是,Artemis将成为ActiveMQ的6.x版本。

  1. 重复任务(ActiveMQ“经典”)

您可以使用计划传递,但这只适用于单个消息。一旦该消息被传递和使用,它就消失了,这意味着您需要发送另一条预定的消息。没有自动、重复地传递相同的消息。

在这里,像石英调度器这样的东西可能是一个很好的解决方案,因为您可以用它来调度所有的任务,并且计划的任务可以向由分布式工作人员监视的队列发送一条消息。通过这种方式,您可以将调度与工作分发分离开来。

  1. 重复任务检测(ActiveMQ Artemis)

Artemis支持被称为“最后值队列”的东西,您可以将消息上的特殊属性设置为特定值(例如,任务ID),并且每当您用相同的值向队列发送消息时,它将用您发送的消息替换现有的消息。换句话说,它总是有您发送的最后一个值。您可以在关于最后值队列的Artemis文档中阅读更多有关这方面的内容。

还有典型的重复检测,您可以在消息上设置一个重复ID,如果代理看到重复的ID,它将使用重复的ID丢弃该消息。您可以在关于重复检测的Artemis文档中更多地了解这一点。

  1. 数据持久化

默认情况下,任何被发送到持久队列(默认情况下队列是持久的)的标记为durable (或persistent )的消息都将被持久化到磁盘。

  1. 消息修改-从队列中删除或更改重复延迟

队列上的消息是不可变的,因此您不能从技术上编辑它们,但是您可以使用最后值队列的语义来获得类似的行为(例如,发送具有相同最后值属性的修改消息,它将替换现有消息)。

  1. 弹簧集成

ActiveMQ是一个just实现,所以在Spring中可用的所有implementation类都能正常工作。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53603303

复制
相关文章

相似问题

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