RabbitMQ 面試題集綿

2022-06-06 15:27:11 字數 692 閱讀 9928

問題1:為什麼需要通道,而不直接tcp直接通訊?

答:a. tcp的建立和銷毀開銷大,建立要三次握手,銷毀要四次揮手;

b. 如果不用通道,應用程式直接tcp連線到rabbit伺服器,高峰時每秒成千上萬連線就會造成資源的巨大浪費,而且作業系統每秒處理tcp連線數也是有限制的,必定造成效能瓶頸;

c. 通道的原理是一條執行緒一條通道,多條執行緒多條通道同用一條tcp連線,一條tcp連線可以容納無限的通道,即使每秒成千上萬的請求也不會成為效能瓶頸。

問題2:如何保證訊息的順序性?

答:a. 單執行緒消費保證訊息的順序性;

b. 對訊息進行編號,消費者處理訊息是根據編號處理訊息。

問題3:如何保證訊息不丟失?

答:訊息丟失場景

a. 生產者丟失:程式傳送失敗拋異常了沒有重試處理,或者傳送的過程成功但是過程中網路閃斷rabbitmq沒收到,訊息就丟失了;

b. rabbitmq丟失:如果生產者保證訊息傳送到rabbitmq,而rabbitmq收到訊息後還在記憶體中,這時候宕機了又沒來得及同步給從節點,就有可能導致訊息丟失;

c. 消費者丟失:消費者剛收到訊息,此時伺服器宕機,rabbitmq認為消費者已經消費,不會重**送訊息,訊息丟失。

避免訊息丟失方案

b. rabbitmq:開啟訊息持久化機制,另外配合使用回執確認功能;

c. 消費者:利用ack機制,訊息手動確認。

Elasticsearch 面試題集綿

問題1 elasticsearch為啥是近實時搜尋?答 a.新增的文件會被收集到indexing buffer中,然後文件從indexing buffer寫入到檔案系統快取中,是需要每秒自動重新整理分片,這時索引文件的變化並不是立即對搜尋可見。問題2 elasticsearch深分頁查詢有什麼問題?...

Spring 面試題集綿

問題1 spring事務失效的場景?答 a.資料庫引擎不支援事務 b.沒有納入spring管理範圍 c.註解所在的方法不是public修飾的 d.發生了自呼叫問題 e.所用資料來源沒有配置事務管理器 f.異常 捉或拋異常錯誤 g.引入shiro中許可權註解 h.發生了spring父子上下文重疊 可參...

前端面試題集綿(新年福利篇)

新年快樂!校招面試,各家企業的問題大同小異,知己知彼,百戰不殆 通過過來人的面經我們能總結出來自己需要準備的知識點。1 前端面試分享 2 阿里 美團點評 遠景 前端開發 春招 3 紀念我的大三實習春招 前端工程師 6 磕磕碰碰的春招 7 本科前端渣渣的春招面經 8 我的春招之路 10 回報牛客,分享...