天天看點

網際網路 Java 工程師進階知識完全掃盲

網際網路 Java 工程師進階知識完全掃盲
高并發架構 消息隊列

為什麼使用消息隊列?消息隊列有什麼優點和缺點?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 的一緻性如何保證?

分布式會話

叢集部署時的分布式 Session 如何實作?

高可用架構

Hystrix 介紹

電商網站詳情頁系統架構

高可用系統

如何設計一個高可用系統?

限流

如何限流?在工作中是怎麼做的?說一下具體的實作?

熔斷

如何進行熔斷?

熔斷架構都有哪些?具體實作原理知道嗎?

降級 需要擷取答案的親們可以加架構交流學習群擷取噢 點選: 加入  JAVA架構學習交流群:614478470

如何進行降級?