微服務架構(五): 服務間通信方式

工作中使用了微服務架構,接下來的一段時間裏,我會寫一系列的文章來介紹微服務架構,同時我也會在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)


直接通過遠程過程調用來訪問別的service。

示例:

優點:

  • 簡單,常見
  • 因爲沒有中間件代理,系統更簡單

缺點:
  • 只支持請求/響應的模式,不支持別的,比如通知、請求/異步響應、發佈/訂閱、發佈/異步響應
  • 降低了可用性,因爲客戶端和服務端在請求過程中必須都是可用的

二、消息


使用異步消息來做服務間通信。服務間通過消息管道來交換消息,從而通信。

示例:

優點:

  • 把客戶端和服務端解耦,更鬆耦合
  • 提高可用性,因爲消息中間件緩存了消息,直到消費者可以消費
  • 支持很多通信機制比如通知、請求/異步響應、發佈/訂閱、發佈/異步響應

缺點:

  • 消息中間件有額外的複雜性




發佈了123 篇原創文章 · 獲贊 334 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章