工作中使用了微服務架構,接下來的一段時間裏,我會寫一系列的文章來介紹微服務架構,同時我也會在github上寫一個microservices的應用框架(地址會在後續文章給出)。
這篇文章主要講述了微服務架構中服務間的通信方式。
翻譯和整理自:
- http://microservices.io/patterns/communication-style/rpi.html
- http://microservices.io/patterns/communication-style/messaging.html
- http://microservices.io/patterns/communication-style/domain-specific.html
一、遠程過程調用(Remote Procedure Invocation)
- 簡單,常見
- 因爲沒有中間件代理,系統更簡單
- 只支持請求/響應的模式,不支持別的,比如通知、請求/異步響應、發佈/訂閱、發佈/異步響應
- 降低了可用性,因爲客戶端和服務端在請求過程中必須都是可用的
二、消息
優點:
- 把客戶端和服務端解耦,更鬆耦合
- 提高可用性,因爲消息中間件緩存了消息,直到消費者可以消費
- 支持很多通信機制比如通知、請求/異步響應、發佈/訂閱、發佈/異步響應
缺點:
- 消息中間件有額外的複雜性