gpt4 book ai didi

java - ActiveMQ - 创建队列/目的地的最佳实践

转载 作者:行者123 更新时间:2023-12-02 03:36:20 25 4
gpt4 key购买 nike

在ActiveMQ中,我们是否应该为每种不同类型的事件创建单独的队列(目的地),以便我们可以让不同的消费者处理此类事件?

或者我们应该发布一个通用事件,然后检查消费者中的事件以确定其类型并采取适当的操作。

例如:如果有两个事件,UserCreatedEventUserActivatedEvent,我们应该有一个队列user_events_q,还是应该有两个队列user_created_events_quser_activated_events_q

队列越多有什么坏处吗?是否需要更多资源?这种场景的典型做法是什么?

最佳答案

您可能想稍微限制队列数量。也许将其保持在 100 以下左右。如果您使用 Hawt.io 或 Web 控制台等工具 - 大量队列将无法正常工作。尽管理论上您可以使用大量队列with some tweaking .

单独队列的优点是:

  • 每个队列一个专用的死信队列
  • 授权是“按队列”进行的。
  • 可以在队列级别应用策略 - 即最大内存、DLQ 策略等。
  • 更简单的客户端代码。

您可以使用 selectors 在共享队列上复用事件类型。某个客户端只会通过查看某些消息属性来接收它需要的消息。 IE。 EventType = 'StockUpdate' 。这可能是减少队列数量的一种方法。

另一种方法是使用主题层次结构。它并不完全映射到队列,但可能是一个选项。假设您发布到不同的主题: StockUpdates.Nasdaq.AAPLStockUpdates.DeutscheBorse.VOW3 .

因此,如果您只想订阅纳斯达克,请使用 StockUpdates.Nasdaq.>或者,如果您只想要大众汽车股票更新,StockUpdates.DeutscheBorse.VOW3 .

关于java - ActiveMQ - 创建队列/目的地的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37411715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com