2013-03-19 14 views
0

我使用ActiveMQ作爲作業調度程序。這意味着一個主設備將作業消息發送到ActiveMQ,並且多個從設備從ActiveMQ獲取作業消息並處理它們。當從屬人員完成一項工作時,他們將帶有job_id的消息發送回ActiveMQ。ActiveMQ在應用程序級重新傳遞

但是,奴隸是不可靠的。如果一個從站在一段時間之前沒有響應,我們可以假定從站已關閉,並嘗試重新發送已發送的作業信息。

有沒有什麼好的想法來實現這種重新交付?

回答

0

通常情況下,消費者處理重新交付,以便它可以維護消息順序,同時消息顯示爲代理中的機上。這意味着,除非消費者終止,否則重新交付僅限於單個消費者。通過這種方式,經紀人不知道重新交付。

在ActiveMQ v5.7 +中,您可以選擇使用代理端重新傳送,有可能讓代理使用重新發送延遲一段時間後重新傳送消息。這是通過一個代理插件實現的,該代理插件通過調度器重新傳遞來處理死信處理。當總消息順序不重要以及在消費者之間進行通過和負載分配時,這是非常有用的。通過經紀人重新交付,未能交付給指定消費者的消息可以立即重新發送。

有關在配置文件中進行設置的示例,請參閱ActiveMQ documentation

相關問題