分散式系統面試連環炮
有一些同學,之前呢主要是做傳統行業,或者外包專案,一直是在那種小的公司,技術一直都搞的比較簡單。他們有共同的一個問題,就是都沒怎麼搞過分散式系統,現在網際網路公司,一般都是做分散式的系統,大家都不是做底層的分散式系統、分散式儲存系統 hadoop hdfs、分散式計算系統 hadoop mapreduce / spark、分散式流式計算系統 storm。
分散式業務系統,就是把原來用 Java 開發的一個大塊系統,給拆分成多個子系統,多個子系統之間互相呼叫,形成一個大系統的整體。假設原來你做了一個 OA 系統,裡面包含了許可權模組、員工模組、請假模組、財務模組,一個工程,裡面包含了一堆模組,模組與模組之間會互相去呼叫,1 臺機器部署。現在如果你把這個系統給拆開,許可權系統、員工系統、請假系統、財務系統 4 個系統,4 個工程,分別在 4 臺機器上部署。一個請求過來,完成這個請求,這個員工系統,呼叫許可權系統,呼叫請假系統,呼叫財務系統,4 個系統分別完成了一部分的事情,最後 4 個系統都幹完了以後,才認為是這個請求已經完成了。
這兩年開始興起和流行 Spring Cloud,剛流行,還沒開始普及,目前普及的是 dubbo,因此這裡也主要講 dubbo。
面試官可能會問你以下問題。
為什麼要進行系統拆分?
- 為什麼要進行系統拆分?如何進行系統拆分?拆分後不用dubbo可以嗎?dubbo和thrift有什麼區別呢?
分散式服務框架
- 說一下的 dubbo 的工作原理?註冊中心掛了可以繼續通訊嗎?
- dubbo 支援哪些序列化協議?說一下 hessian 的資料結構?PB 知道嗎?為什麼 PB 的效率是最高的?
- dubbo 負載均衡策略和高可用策略都有哪些?動態代理策略呢?
- dubbo 的 spi 思想是什麼?
- 如何基於 dubbo 進行服務治理、服務降級、失敗重試以及超時重試?
- 分散式服務介面的冪等性如何設計(比如不能重複扣款)?
- 分散式服務介面請求的順序性如何保證?
- 如何自己設計一個類似 dubbo 的 rpc 框架?
分散式鎖
- 使用 redis 如何設計分散式鎖?使用 zk 來設計分散式鎖可以嗎?這兩種分散式鎖的實現方式哪種效率比較高?
分散式事務
- 分散式事務瞭解嗎?你們如何解決分散式事務問題的?TCC 如果出現網路連不通怎麼辦?XA 的一致性如何保證?
分散式會話
- 叢集部署時的分散式 session 如何實現?
覺得不錯請點贊支援,歡迎留言或進我的個人群855801563領取【架構資料專題目合集90期】、【BATJTMD大廠JAVA面試真題1000+】,本群專用於學習交流技術、分享面試機會,拒絕廣告,我也會在群內不定期答題、探討。