一.分布式系統:
- 具有多個節點
- 節點間要進行消息傳遞
- 節點需要完成特定的需求
多個節點:
- 可以提高容錯性
- 具有可擴充性(性能)
- 固有分布性(業務上或人員上)
消息傳遞:分布式系統多個節點之間的協作不是通過共享存儲實作的,而是通過消息傳遞來實作
- 節點具有私有存儲
- 易于開發
- 具有可擴充性(功能)
- 對比:并行計算(多用共享存儲實作,但并不是不用消息傳遞)
消息傳遞的方法:
- REST : 是一種接口的方法
- RPC : 将函數的調用序列化為可以在網絡上傳輸的資料,收到資料的遠端進行反序列化來實作函數調用
- 中間件 : REST, RPC要求消息傳遞是雙方都線上,但若對方不線上時,可以将消息發給中間件,中間件可以存儲消息,等對方上線時可以從中間件中取得消息,實作異步消息溝通,而且中間件可以一對多的釋出,通常稱為"MessageQueue"

一般來說,消息傳遞的方式:
1> 對外:REST (保持API接口的規範性和不易改變)
2> 子產品内部(耦合比較緊):RPC
3> 子產品之間(耦合比較松):中間件,REST
二.分布式架構 VS 微服務架構
- 分布式:指導節點之間如何通信
- 微服務:鼓勵按業務來劃分子產品(差別于傳統的按技術劃分子產品)
- 微服務架構通過分布式架構來實作,兩者考慮的次元不同
三.多層架構 VS 微服務架構
- 微服務架構具有更多的"服務",服務之間耦合度很松
- 微服務通常需要配合自動化測試,自動化部署,服務發現等
- 目前,微服務架構是趨勢