[英]Module clustering and JMS
我有一個在JVM
(沒有容器)中獨立運行並通過JMS
與其他模塊通信的模塊。 我的模塊既是一個隊列中的生產者,又是另一個隊列中的消費者。 然后,出於HA和工作量方面的原因,我需要對該模塊進行群集,並且我可能要與Terracotta + Hibernate一起對我的實體進行群集。 當前,當我的應用程序啟動時,它會啟動一個線程(通過Executors.newSingleThreadExecutor()
)作為使用者(我可以在必要時附加實際代碼示例)。
我在這里讀書的問題理解的是,如果我剛開始我的模塊上N
不同JVMs
然后N
不同的用戶將被創建並在隊列中的每個消息將到達N
用戶。 我想做的是只處理其中的一條消息(目前,讓我們說哪個不重要),因此實際上使我能夠一次處理N
消息。
如何/應該這樣做? 我會偏離軌道嗎?
順便說一句,我正在使用OpenMQ
作為實現,但是我不知道這是否有意義。
謝謝你的幫助
集群環境中消息處理的典型案例。 這就是我要做的。
使用廣播消息(基於頻道)代替隊列。 對於點對點通信有用的隊列不是很有效。 設置消息的有效性,直到消費者之一使用它為止。 這樣,其他消費者甚至不會看到該消息,只有一個消費者會使用它。
看一下JGroups 。 您可以考慮實現模塊/訂戶以使用jgroup進行所需的同步。 JGroups提供可靠的多播通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.