小編通過一個多月的努力,給你們總結了一份面試方面的題目。這份面試題涉及高併發、分佈式、高可用相關知識點,在此分享給你們,但願你們能拿到一份理想的 Offer!由於是筆試題目,你們能夠先作。若是須要查看答案,能夠加入個人QQ技術討論羣去看答案。我已經把答案的文件上傳到了QQ羣。QQ羣號碼:850276684 。或者點擊下面的連接直接入羣:點擊入羣面試
高併發架構
消息隊列
- 爲何使用消息隊列?消息隊列有什麼優勢和缺點?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什麼優勢和缺點?
- 如何保證消息隊列的高可用?
- 如何保證消息不被重複消費?(如何保證消息消費時的冪等性)
- 如何保證消息的可靠性傳輸?(如何處理消息丟失的問題)
- 如何保證消息的順序性?
- 如何解決消息隊列的延時以及過時失效問題?消息隊列滿了之後該怎麼處理?有幾百萬消息持續積壓幾小時,說說怎麼解決?
- 若是讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路。
搜索引擎
- es 的分佈式架構原理能說一下麼(es 是如何實現分佈式的啊)?
- es 寫入數據的工做原理是什麼啊?es 查詢數據的工做原理是什麼啊?底層的 lucene 介紹一下唄?倒排索引瞭解嗎?
- es 在數據量很大的狀況下(數十億級別)如何提升查詢效率啊?
- es 生產集羣的部署架構是什麼?每一個索引的數據量大概有多少?每一個索引大概有多少個分片?
緩存
- 在項目中緩存是如何使用的?緩存若是使用不當會形成什麼後果?
- Redis 和 Memcached 有什麼區別?Redis 的線程模型是什麼?爲何單線程的 Redis 比多線程的 Memcached 效率要高得多?
- Redis 都有哪些數據類型?分別在哪些場景下使用比較合適?
- Redis 的過時策略都有哪些?手寫一下 LRU 代碼實現?
- 如何保證 Redis 高併發、高可用?Redis 的主從複製原理能介紹一下麼?Redis 的哨兵原理能介紹一下麼?
- Redis 的持久化有哪幾種方式?不一樣的持久化機制都有什麼優缺點?持久化機制具體底層是如何實現的?
- Redis 集羣模式的工做原理能說一下麼?在集羣模式下,Redis 的 key 是如何尋址的?分佈式尋址都有哪些算法?瞭解一致性 hash 算法嗎?如何動態增長和刪除一個節點?
- 瞭解什麼是 Redis 的雪崩和穿透?Redis 崩潰以後會怎麼樣?系統該如何應對這種狀況?如何處理 Redis 的穿透?
- 如何保證緩存與數據庫的雙寫一致性?
- Redis 的併發競爭問題是什麼?如何解決這個問題?瞭解 Redis 事務的 CAS 方案嗎?
- 生產環境中的 Redis 是怎麼部署的?
分庫分表
- 爲何要分庫分表(設計高併發系統的時候,數據庫層面該如何設計)?用過哪些分庫分表中間件?不一樣的分庫分表中間件都有什麼優勢和缺點?大傢俱體是如何對數據庫如何進行垂直拆分或水平拆分的?
- 如今有一個未分庫分表的系統,將來要分庫分表,如何設計纔可讓系統從未分庫分表動態切換到分庫分表上?
- 如何設計能夠動態擴容縮容的分庫分表方案?
- 分庫分表以後,id 主鍵如何處理?
讀寫分離
- 如何實現 MySQL 的讀寫分離?MySQL 主從複製原理是啥?如何解決 MySQL 主從同步的延時問題?
高併發系統
分佈式系統
系統拆分
- 爲何要進行系統拆分?如何進行系統拆分?拆分後不用 Dubbo 能夠嗎?
分佈式服務框架
- 說一下 Dubbo 的工做原理?註冊中心掛了能夠繼續通訊嗎?
- Dubbo 支持哪些序列化協議?說一下 Hessian 的數據結構?PB 知道嗎?爲何 PB 的效率是最高的?
- Dubbo 負載均衡策略和集羣容錯策略都有哪些?動態代理策略呢?
- Dubbo 的 spi 思想是什麼?
- 如何基於 Dubbo 進行服務治理、服務降級、失敗重試以及超時重試?
- 分佈式服務接口的冪等性如何設計(好比不能重複扣款)?
- 分佈式服務接口請求的順序性如何保證?
- 如何本身設計一個相似 Dubbo 的 rpc 框架?
分佈式鎖
- Zookeeper 都有哪些應用場景?
- 使用 Redis 如何設計分佈式鎖?使用 Zookeeper 來設計分佈式鎖能夠嗎?以上兩種分佈式鎖的實現方式哪一種效率比較高?
分佈式事務
- 分佈式事務瞭解嗎?大家如何解決分佈式事務問題的?TCC 若是出現網絡連不通怎麼辦?XA 的一致性如何保證?
分佈式會話
高可用架構
高可用系統
限流
熔斷
- 如何進行熔斷?
- 熔斷框架都有哪些?具體實現原理知道嗎?
降級
也歡迎關注個人微信公衆號一塊兒探討。算法