2014-12-30 61 views
0

我想100級的消息被ActiveMQ的通過一起交付給消費者,但在同一時間生產商將生產一個郵件的時間。如何將多個消息一起傳遞給ActiveMQ中的監聽器?

原因我想這是因爲我不想處理交貨單獨處理每個消息的開銷,而不是我們想要做的交貨批量處理。

是否有可能通過ActiveMQ實現這一目標,或者我應該編寫自己的修改來實現此目的。

+0

你可以看一下像春天批次(或駱駝)的框架,但無論如何,您的設計可能是錯誤的。關於交易呢? – Raffaele

+0

交易是我正在尋找的東西,但我需要的是,我可以一次生成一個消息並批量交付。 – vmeghani

+0

這需要一個緩衝區,所以你現在必須決定**如果在填充或處理緩衝區時發生錯誤該怎麼辦 – Raffaele

回答

1

ActiveMQ是一個因此JMS 1.1客戶端/代理實現沒有API來批量傳送消息,異步聽者調度它們一次一個。客戶端預取多於一條消息,因此使用異步監聽器處理它們的開銷非常低。

0

你可以通過把每一個消息到一個緩衝區,只有做你的處理當緩衝區包含N個信息實現自己的目標。要使其工作,你要使用的確認模式,例如CLIENT_ACKNOWLEDGE,允許你不承認,坐在緩衝區中,直到它們被處理的消息;這樣,如果你的客戶端在內存中發生了一些消息而崩潰,當客戶端恢復時它們將被重新傳遞。

相關問題