阿里P8精心整理MongoDB+RabbitMQ+Memcached面試題,100%拿offer
前言
首先,大家先了解一下三者的概念究竟是什么?有哪些功能?工作原理?
一、RabbitMQ
1.消息型中間件,用于不同應用之間的通信,基于amqp協議實現
2.功能:將一些無需要及時返回而且耗時的操作提取出來,進行解耦,利用異步處理,提高系統的吞吐量
3工作原理:A生產消息,發送給服務器的exchange
exchange收到消息根據routinkey,將消息發送給匹配的queue,
queue收到消息,將消息發送給接受方
接收方接收消息后發送給ack給queue,
queue收到ack,刪除隊列中緩存的消息
4.集群節點分配
集群元數據:保存集群及其節點相關信息,存儲在集群的每一個節點中
disc節點
ram節點
二.memcached
1.緩存型中間件,通過解耦,減輕數據庫的負擔
2.優勢:開源,高性能,分布式,在內存中以鍵值方式存在
3.流程:客戶端發送請求,若請求的數據在memcached服務器,則直接將結果返回用戶,若結果不在,則從數據庫中找出內容返回用戶,并且緩存一份在memcached中,更新數據庫,也會跟新memecached,若內存不足,則替換原來的數據。
三、mongodb
mongodb是一個基于分布式文件存儲的數據庫,由C++語言編寫。
它旨在為WEB應用提供可擴展的高性能數據存儲解決方案,最大的特點是支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
其次,就是給大家分享面試必備MongoDB+RabbitMQ+Memcached面試題及答案,因為內容過多,所以只展示了部分面試題和答案!!
第二版: Memcached 23道
1. Memcached是什么,有什么作用?
2、Memcached 服務在企業集群架構中有哪些應用場景?
一、作為數據庫的前端緩存應用
a.完整緩存(易)。靜態緩存
b.執點緩存(難)
特殊說明:
二、作業集群的session會話共享存儲-
3、Memcached 服務特點及工作原理是什么?
4、簡述Memcached內存管理機制原理? ....
5. Memcached是怎么工作的?
6、Memcached 最大的優勢是什么?
7、Memcached 和MySQL的qee-----
8、Memcached和服務器的local cache (比如PHP的APC、mmap 文件等)相比,有什么優缺點?
9. Memcached 的cache機制是怎樣的?
10、Memcached 如何實現冗余機制?
11. Memcached 如何處理容錯的?
12.如何將Memcached中item批量導入導出?
13.如果緩存數據在導出導入之間過期了,您又怎么處理這些數據呢? ...
14、Memcached 是如何做身份驗證的?
15. Memcached 的多線程是什么?如何使用它們?
16. Memcached 能接受的key的最大長度是多少?
17. Memcached 最大能存儲多大的單個item?
18、Memcached 能夠更有效地使用內存嗎?
19.什么是二進制協議。我該關注嗎?
20、Memcached的內存分配器是如何工作的?為什么不適用malloc/free! ?為何要使用slabs?
21、Memcached 是原子的嗎?
22、如何實現集群中的session共享存儲?
23、Memcached 與redis的區別?
Memcached 23道面試題答案
第二版: RabbitMQ 12道
1、什么是rabbitmq
2、為什么要使用rabbitmq-
3、使用rabbitmq的場景
4、如何確保消息正確地發送至RabbitMQ?如何確保消 息接收方消費了消息?
發送方確認模式
接收方確認機制
5 ,如何避免消息重復投遞或重復消費?
6、消息基于什么傳輸?
7、消息如何分發?
8、消息怎么路由?
9、如何確保消息不丟失?
10、使用RabbitMQ有什么好處?
11、rabbitmq的集群
12、mq的缺點:
系統可用性降低
系統復雜性提高
一致性問題
RabbitMQ 12道面試題答案
第二版: RabbitMQ 23道
什么是MQ:
MQ的優點
解耦、異步、削峰是什么? .
消息隊列有什么缺點:
1.系統可用性降低
2. 系統復雜度提高
3.-致性問題
你們公司生產環境用的是什么消息中間件?
Kafka、ActiveMQ、RabbitMQ、 RocketMQ 有什么優缺點?
MQ有哪些常見問題?如何解決這些問題?
什么是RabbitMQ?
rabbitmq的使用場景-
(1)服務間異步通信
(2)順序消費
(3)定時任務
(4)請求削峰-
RabbitMQ基本概念
RabbitMQ的工作模式
一.simple模式(即最簡單的收發模式)
二.work工作模式(資源的競爭)-
三.publish/subscribe發布訂閱(共享資源)
四.routing路由模式
五.topic主題模式(路由模式的一種)
如何保證RabbitMQ消息的順序性?
消息如何分發?
消息怎么路由?
消息基于什么傳輸?
如何保證消息不被重復消費?或者說,如何保證消息消費時的幕等性?
如何確保消息正確地發送至RabbitMQ?如何確保消 息接收方消費了消息?
發送方確認模式
接收方確認機制
下面羅列幾種特殊情況
如何保證RabbitMQ消息的可靠傳輸?
為什么不應該對所有的message 都使用持久化機制?
如何保證高可用的? RabbitMQ的集群
如何解決消息隊列的延時以及過期失效問題?消息隊列滿了以后該怎么處理?有幾百萬消息持續積壓幾小時,怎么辦?
設計MQ思路?
RabbitMQ 23道面試題答案
第二版: MongoDB 24道
1 nosql和關系型數據庫的區別
2 nosql數據庫有哪些
3 MySQL與mongodb本質之間最基本的差別是什么
4.你怎么比較MongoDB. CouchDB 及CouchBase?
5使用mongodb的優點.
8.分析器在MongoDB中的作用是什么?.
9名字空間(namespace) 是什么?
10.如果用戶移除對象的屬性.該屬性是否從存儲層中刪除?
11.能否使用日志特征進行安全備份?
13.更新操作立刻fsync到磁盤?
14如何執行事務/加鎖?
15為什么mongodb的數據文件那么龐大一
17.什么是master或primary?
18 getLastError的作用
19.分片(sharding) 和復制(replication) 是怎樣工作的?
20.數據在什么時候才會擴展到多個分片(shard) 里?
21.當我試圖更新-個正在被遷移的塊(chunk) 上的文檔時會發生什么? ....
22.我怎么查看Mongo正在使用的鏈接?
23mongodb的結構介紹
24數據庫的整體結構.
MongoDB 24道面試題答案
MongoDB+RabbitMQ+Memcached面試題及答案
需要阿里p8大佬整理的這份面試題及答案的小伙伴,關注公眾號:程序員高級碼農
感謝大家支持!
浙公網安備 33010602011771號