2017-10-12 70 views
0

我會盡我所能解釋這一點。ActiveMQ將現有的隊列轉換爲CompositeQueue

正如我存儲我的數據,我從我的ActiveMQ的隊列接收在若干不同的位置,我已決定建立一個複合隊列,所以我可以分別處理每個位置的數據。

我遇到的問題是,我目前擁有的隊列在生產環境中。看起來,將名爲A的隊列更改爲也稱爲A的組合隊列A具有名爲B和C的虛擬目標,這會導致我失去現有隊列中的所有數據。它不會啓動前面的消息。目前,我正在創建一個名稱不同的新CompositeQueue,比如D,它將數據轉發給B和C.然後,我有一些笨重的代碼阻止所有連接,直到我將a)所有生產者更新爲發送給D和b )使用消費者從A中提取數據並將其與製片人發送給D.

感覺相當混亂。有沒有辦法解決?理想情況下,我將能夠保持相同的隊列名稱,將其當前的所有數據發送到複合子隊列,並且僅在最後纔將隊列轉發。

回答

0

從給定的所期望的行爲的說明是沒有可能的消息上的複合隊列路由當消息是在飛行中和不晚些時候當該隊列已經存儲的消息和代理配置被改變的工作原理。你需要消耗來自初始隊列(我猜是這樣)的過去消息,並將它們發送到所需的目的地。

+0

我很害怕那樣;它使編寫向後兼容的代碼(在我的情況下)變得困難。感謝您確認我的解決方案是正確的方向。 –