簡體   English   中英

ActiveMQ主題上的並行消息消耗

[英]Parallel message consumption on ActiveMQ topic

ActiveMQ中的持久性主題(這似乎是JMS本身的障礙)似乎表明,只有一個使用者可以在訂戶上處於活動狀態。

也就是說,在ActiveMQ文檔中:

使用唯一的JMS clientID和持久訂戶名稱創建一個JMS持久訂戶MessageConsumer。 為了符合JMS,任何時候一個JMS clientID只能激活一個JMS連接,而一個clientID和訂戶名稱只能激活一個使用者。 也就是說,給定的邏輯主題訂戶只能主動使用一個線程。

但是,其他排隊系統(根據文檔,Azure Service Bus似乎可以做到這一點)似乎很容易在單個“訂閱”上允許多個線程化的“訂閱者”。 在當今時代,人們會認為那是必然的。

為什么會這樣呢? 這將在將來的JMS和/或ActiveMQ版本中解決嗎?

PS對於這種情況,“虛擬主題”(上面引用的文檔)似乎不是一個理想的解決方案,因為它似乎在后台為每個訂閱者創建了一個完全獨立的隊列。

為什么會這樣呢?

您引用的文檔說明了為什么會這樣-符合JMS。 需要明確的是,此處的JMS兼容版本是1.1。 JMS 2.0引入了“共享的”持久訂閱者

這將在將來的JMS和/或ActiveMQ版本中解決嗎?

ActiveMQ 5.x僅實現JMS 1.1,並且我不知道要增加對JMS 2.0的支持的計划。 但是, ActiveMQ Artemis (在更現代,更高性能的內核之上構建的ActiveMQ旗幟下的另一家經紀人)確實支持JMS 2.0(以及其他協議)。

就其價值而言,在具有隊列的代理中實現訂閱並不一定會帶來性能問題。 這就是ActiveMQ Artemis所做的,並且具有非常好的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM