1. 程式人生 > >面試專題(分散式系統微服務)

面試專題(分散式系統微服務)

架構設計相關

0. 什麼是分散式系統,什麼是微服務?

叢集:多機器做同一件事情;
分散式系統: 一件事情,多系統協同完成;
微服務架構:構建分散式系統的一種架構方式, 核心思路是:去中心化;
http://www.cnblogs.com/liuning8023/p/4493156.html
 

1. RPC和RPC框架

RPC是指遠端過程呼叫,實現遠端過程呼叫的方式有很多中,Dubbo,Rmi,Hessian等等;
RPC的核心過程包括了客戶端和服務端的通訊協議,定址,資料序列化/反序列化;
對上述過程進行了封裝,不需要開發人員自己去定義通訊協議,去實現序列化的細節工作,
這樣的元件稱為RPC框架;常見RPC框架有 thrift,gRpc,dubbo,motan


2. 序列化方式及作用

序列化:將java物件或者其他記憶體中的資料,轉換為一種特定格式的流,使之可以在網路中傳輸或者磁碟上儲存;
反序列化:將流以特定的格式轉為java物件或者記憶體中其他形式的資料;# json,jdk serializable, Hessian,Dubbo, Protobuf,
作用:壓縮;持久化儲存;跨網路傳輸;


3. 分散式系統中事務的處理

參考:https://wenku.baidu.com/view/be946bec0975f46527d3e104.html
          https://segmentfault.com/a/1190000004468442
事務相關必瞭解的概念:
ACID 

(Atomic原子性,Consistency一致性,Isolation隔離性,Durability永續性)
CAP (一致性Consistency,可用性Availability,分割槽容錯性Partitiontolerance),分散式系統來說,P是不能放棄的
BASE (Basically Available(基本可用),Soft state(軟狀態),Eventuallyconsistent(最終一致性))
分散式事務實現方式:
1.  XA (資料庫廠商實現);2. 後臺任務定期校對資料;3. 通過訊息佇列,實現最終一致(確保訊息到達MQ,冪等性);4. TCC機制(Try,Confirm,Cancel)
https://www.cnblogs.com/rainwang/p/7099648.html

 

4. 系統監控
5. 高可用
6. 服務呼叫的負載均衡
7. 分散式配置中心
8. 服務註冊與發現機制
9. 分散式系統如何拆分?