天天看點

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

基礎架構

  • Spring IOC 源碼分析
  • Spring AOP 源碼解析
  • MyBatis 架構分析
  • SQL 優化政策

高并發架構

緩存

  • 在項目中緩存是如何使用的?緩存如果使用不當會造成什麼後果?
  • Redis 和 Memcached 有什麼差別?Redis 的線程模型是什麼?為什麼單線程的 Redis 比多線程的 Memcached 效率要高得多?
  • Redis 都有哪些資料類型?分别在哪些場景下使用比較合适?
  • Redis 的過期政策都有哪些?手寫一下 LRU 代碼實作?
  • 如何保證 Redis 高并發、高可用?Redis 的主從複制原理能介紹一下麼?Redis 的哨兵原理能介紹一下麼?
  • Redis 的持久化有哪幾種方式?不同的持久化機制都有什麼優缺點?持久化機制具體底層是如何實作的?
  • Redis 叢集模式的工作原理?在叢集模式下,Redis 的 key 是如何尋址的?分布式尋址都有哪些算法?了解一緻性 hash 算法嗎?如何動态增加和删除一個節點?
  • 了解什麼是 Redis 的雪崩、穿透和擊穿?Redis 崩潰之後會怎麼樣?系統該如何應對這種情況?如何處理 Redis 的穿透?
  • 如何保證緩存與資料庫的雙寫一緻性?
  • Redis 的并發競争問題是什麼?如何解決這個問題?了解 Redis 事務的 CAS 方案嗎?
  • 生産環境中的 Redis 是怎麼部署的?

消息隊列

  • 為什麼使用消息隊列?消息隊列有什麼優點和缺點?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什麼優點和缺點?
  • 如何保證消息隊列的高可用?
  • 如何保證消息不被重複消費(幂等性)?
  • 如何處理消息丢失的問題(可靠性)?
  • 如何保證消息的順序性?
  • 如何解決消息隊列的延時以及過期失效問題?消息隊列滿了以後該怎麼處理?有幾百萬消息持續積壓幾小時,說說怎麼解決?
  • 如果讓你寫一個消息隊列,該如何進行架構設計啊?

搜尋引擎

  • es 的分布式架構原理能說一下麼(es 是如何實作分布式的啊)?
  • es 寫入資料的工作原理是什麼啊?es 查詢資料的工作原理是什麼啊?底層的 lucene 介紹一下呗?反向索引了解嗎?
  • es 在資料量很大的情況下(數十億級别)如何提高查詢效率啊?
  • es 生産叢集的部署架構是什麼?每個索引的資料量大概有多少?每個索引大概有多少個分片?

分庫分表

  • 為什麼要分庫分表?用過哪些分庫分表中間件?不同的分庫分表中間件都有什麼優點和缺點?你們具體是如何對資料庫如何進行垂直拆分或水準拆分的?
  • 現在有一個未分庫分表的系統,未來要分庫分表,如何設計才可以讓系統從未分庫分表動态切換到分庫分表上?
  • 如何設計可以動态擴容縮容的分庫分表方案?
  • 分庫分表之後,id 主鍵如何處理?
  • 如何實作 MySQL 的讀寫分離?MySQL 主從複制原理是啥?如何解決 MySQL 主從同步的延時問題?

綜合

  • 如何設計一個高并發系統?

分布式架構

分布式服務架構

  • 為什麼要進行系統拆分?如何進行系統拆分?拆分後不用 Dubbo 可以嗎?
  • 說一下 Dubbo 的工作原理?注冊中心挂了可以繼續通信嗎?
  • Dubbo 支援哪些序列化協定?說一下 Hessian 的資料結構?PB 知道嗎?為什麼 PB 的效率是最高的?
  • Dubbo 負載均衡政策和叢集容錯政策都有哪些?動态代理政策呢?
  • Dubbo 的 spi 思想是什麼?
  • 如何基于 Dubbo 進行服務治理、服務降級、失敗重試以及逾時重試?
  • 分布式服務接口的幂等性如何設計(比如不能重複扣款)?
  • 分布式服務接口請求的順序性如何保證?
  • 如何自己設計一個類似 Dubbo 的 RPC 架構?

分布式協調架構

  • Zookeeper 都有哪些應用場景?
  • 使用 Redis 如何設計分布式鎖?使用 Zookeeper 來設計分布式鎖可以嗎?以上兩種分布式鎖的實作方式哪種效率比較高?
  • 分布式事務了解嗎?你們如何解決分布式事務問題的?TCC 如果出現網絡連不通怎麼辦?XA 的一緻性如何保證?
  • 叢集部署時的分布式 Session 如何實作?

高可用架構

高可用架構

  • Hystrix 介紹
  • Hystrix 線程池技術實作資源隔離
  • Hystrix 信号量機制實作資源隔離
  • Hystrix 隔離政策細粒度控制
  • 深入 Hystrix 執行時内部原理
  • 基于 request cache 請求緩存技術優化批量商品資料查詢接口
  • 基于本地緩存的 fallback 降級機制
  • 深入 Hystrix 斷路器執行原理
  • 深入 Hystrix 線程池隔離與接口限流
  • 基于 timeout 機制為服務接口調用逾時提供安全保護

限流、熔斷、降級

  • 熔斷架構如何做技術選型?選用 Sentinel 還是 Hystrix?

大資料架構

Storm

  • Storm入門

微服務架構

待續

繼續閱讀