[英]Pooling messages before sending them to ActiveMQ
要求是通過JMS(最有可能是ActiveMQ)從Tomcat發送網站訪問者生成的表單數據。 有兩種相互競爭的想法-一種是利用中介存儲和線程池發送到隊列(如果由於某種原因而發布到JMS失敗,則嘗試重新發送),另一種就是嘗試直接從JMS通過JMS發送有效負載。處理訪問者發布請求的線程-如果JMS發布由於某種原因失敗,則請求失敗。
第二種選擇對我來說似乎更好,因為我認為在消息隊列前面添加中間存儲是一個過大的選擇-消息隊列本身應該是中間存儲。 聽起來對嗎?
什么? 等待-MQ Broker是一個中間存儲(持久性),用於應對接收方的停機時間,該時間可以處理重發,而不能處理重發。 非少,你是正確的。 您不希望僅僅因為您的(遠程)經紀人失靈而錯過訂單。 針對該問題的一種有彈性的解決方案是設置本地(可能是嵌入式的)ActiveMQ代理,然后與遠程代理建立“代理網絡”連接。 您可以確定本地代理和您的Web應用程序都已啟動,並且如果當前恰好處於脫機狀態,它將處理向遠程代理的重新傳輸。
但是,我建議不要實現一個簡單的內存緩沖區來保存數據,直到將其發布到代理為止。
讓我們來看一個場景(我只是在構成表單的目的):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.