溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RabbitMQ面試題有哪些

發(fā)布時間:2021-12-22 12:18:10 來源:億速云 閱讀:172 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹RabbitMQ面試題有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

RabbitMQ是消息中間件,采用的erlang語言,而這個語言本身就是支持并發(fā)的。

在項目中運用的場景是我們的訂單數(shù)據(jù)修改時,需要把訂單的狀態(tài)同步給第三方系統(tǒng),在這個對接過程,我們將消息發(fā)送到RabbitMQ上,而RabbitMQ再把消息推給第三方系統(tǒng)。


幾種模式


1.單發(fā)送單接收

2.單發(fā)送多接收

3.發(fā)布訂閱模式

4.按topic發(fā)送接收


如何保證數(shù)據(jù)不丟失

在整個發(fā)送消息,消費消息的過程中,可能三個地方存在問題:

1.發(fā)送時,消息由于網(wǎng)絡(luò)問題,半路搞丟。

解決方法:

  • a.同步。采用事務管理,開啟事務,在發(fā)送消息的時候,如果mq沒有接受到消息,則拋出異常,本地捕獲異常并重試。

  • b.異步。寫入時可以回調(diào)本地接口,確認機制。(建議使用)


2.MQ服務器本身的問題。如果他還沒來得及把消息發(fā)送消費端就掛了,這個時候消息就丟失了。

解決方法:(持久化操作)

  • a.創(chuàng)建隊列時,設(shè)置其為持久化。

  • b.消息的deliveryMode為2。


3.在消費的時候,消息由于網(wǎng)絡(luò)問題,半路搞丟。

解決方法:消費者在接收到消息先執(zhí)行業(yè)務代碼,等結(jié)束時,再告訴服務器已經(jīng)執(zhí)行完,再執(zhí)行刪除操作。


如何避免數(shù)據(jù)重復消費

這個RabbitMQ認為不是服務器的問題,而是我們的代碼問題。

所以我們的解決方法是在消費端進行控制,擁有一個業(yè)務id,人工去重。

以上是“RabbitMQ面試題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI