我正在嘗試同步我擁有的三個微服務。RabbitMQ - 最佳做法
爲了做到這一點,我實現了RabbitMQ。 這似乎是目前的工作,但我不知道如果我遵循最佳實踐,我無法找到一個參考來查找它,也許有人可以幫助我呢?
簡要的什麼,我試圖做的: 我有一個服務誰應該更新了兩個人, 的每一項服務應接收發送的消息。 我有兩種類型的消息(保存和刪除資源)。 *發生故障時,隊列應恢復並重新發送消息。
我目前在做什麼: 我已經建立了一個交流,我的每一個消費者連接到兩個不同的隊列,每個類型的消息(保存/刪除)。 我已經使用了直接交換爲了稍後過濾消息,即使目前我不需要過濾它們。
每個隊列都被命名,並且交換以及消息都是持久的,並且我正在消費我消費的消息。
問題 我應該設定不同的隊列,每個類型的事件,或者我應該發在同一個隊列中的消息,並將其篩選? 上述是否使用RabbitMQ是解決問題的正確方案。 最佳做法是什麼?
謝謝你的回答! 我遇到了一個新問題,如果我未能消費一條消息,而我也沒有確認。該過程不會再嘗試並消耗該消息。 它永遠不會進入隊列中的就緒狀態,但它仍然在隊列中。 有關如何解決它的任何建議? – straiker2
你應該嘗試捕捉你的消費邏輯,如果有任何異常,並且你肯定下次嘗試可能成功,你可以發送一個nack來將消息返回給隊列,查看這個鏈接:http://stackoverflow.com/questions/28794123/ACK-或-NACK合的RabbitMQ;如果您確定重試仍會失敗(基於發現的異常),則仍應發送確認,並記錄異常以進一步分析。 –