分佈式系統面試總結

分佈式系統面試連環炮

有一些同窗,以前呢主要是作傳統行業,或者外包項目,一直是在那種小的公司,技術一直都搞的比較簡單。他們有共同的一個問題,就是都沒怎麼搞過度布式系統,如今互聯網公司,通常都是作分佈式的系統,你們都不是作底層的分佈式系統、分佈式存儲系統 hadoop hdfs、分佈式計算系統 hadoop mapreduce / spark、分佈式流式計算系統 storm。面試

分佈式業務系統,就是把原來用 Java 開發的一個大塊系統,給拆分紅多個子系統,多個子系統之間互相調用,造成一個大系統的總體。假設原來你作了一個 OA 系統,裏面包含了權限模塊、員工模塊、請假模塊、財務模塊,一個工程,裏面包含了一堆模塊,模塊與模塊之間會互相去調用,1 臺機器部署。如今若是你把這個系統給拆開,權限系統、員工系統、請假系統、財務系統 4 個系統,4 個工程,分別在 4 臺機器上部署。一個請求過來,完成這個請求,這個員工系統,調用權限系統,調用請假系統,調用財務系統,4 個系統分別完成了一部分的事情,最後 4 個系統都幹完了之後,才認爲是這個請求已經完成了。redis

這兩年開始興起和流行 Spring Cloud,剛流行,還沒開始普及,目前普及的是 dubbo,所以這裏也主要講 dubbo。網絡

面試官可能會問你如下問題。session

爲何要進行系統拆分?

  • 爲何要進行系統拆分?如何進行系統拆分?拆分後不用dubbo能夠嗎?dubbo和thrift有什麼區別呢?

分佈式服務框架

  • 說一下的 dubbo 的工做原理?註冊中心掛了能夠繼續通訊嗎?
  • dubbo 支持哪些序列化協議?說一下 hessian 的數據結構?PB 知道嗎?爲何 PB 的效率是最高的?
  • dubbo 負載均衡策略和高可用策略都有哪些?動態代理策略呢?
  • dubbo 的 spi 思想是什麼?
  • 如何基於 dubbo 進行服務治理、服務降級、失敗重試以及超時重試?
  • 分佈式服務接口的冪等性如何設計(好比不能重複扣款)?
  • 分佈式服務接口請求的順序性如何保證?
  • 如何本身設計一個相似 dubbo 的 rpc 框架?

分佈式鎖

  • 使用 redis 如何設計分佈式鎖?使用 zk 來設計分佈式鎖能夠嗎?這兩種分佈式鎖的實現方式哪一種效率比較高?

分佈式事務

  • 分佈式事務瞭解嗎?大家如何解決分佈式事務問題的?TCC 若是出現網絡連不通怎麼辦?XA 的一致性如何保證?

分佈式會話

  • 集羣部署時的分佈式 session 如何實現?
相關文章
相關標籤/搜索