您好,登錄后才能下訂單哦!
這篇文章主要介紹RabbitMQ面試題有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
RabbitMQ是消息中間件,采用的erlang語言,而這個語言本身就是支持并發的。
在項目中運用的場景是我們的訂單數據修改時,需要把訂單的狀態同步給第三方系統,在這個對接過程,我們將消息發送到RabbitMQ上,而RabbitMQ再把消息推給第三方系統。
幾種模式
1.單發送單接收
2.單發送多接收
3.發布訂閱模式
4.按topic發送接收
如何保證數據不丟失
在整個發送消息,消費消息的過程中,可能三個地方存在問題:
1.發送時,消息由于網絡問題,半路搞丟。
解決方法:
a.同步。采用事務管理,開啟事務,在發送消息的時候,如果mq沒有接受到消息,則拋出異常,本地捕獲異常并重試。
b.異步。寫入時可以回調本地接口,確認機制。(建議使用)
2.MQ服務器本身的問題。如果他還沒來得及把消息發送消費端就掛了,這個時候消息就丟失了。
解決方法:(持久化操作)
a.創建隊列時,設置其為持久化。
b.消息的deliveryMode為2。
3.在消費的時候,消息由于網絡問題,半路搞丟。
解決方法:消費者在接收到消息先執行業務代碼,等結束時,再告訴服務器已經執行完,再執行刪除操作。
如何避免數據重復消費
這個RabbitMQ認為不是服務器的問題,而是我們的代碼問題。
所以我們的解決方法是在消費端進行控制,擁有一個業務id,人工去重。
以上是“RabbitMQ面試題有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。