繁瑣性 - 實作 AWS 上的微型服務

繁瑣性

透過將整合型應用程式拆分為較小型的微型服務,通訊開銷會增加,因為微型服務必須彼此互相通訊。在許多實作中,會使用 REST over HTTP,因為這是輕量型通訊協定,但訊息量大時卻可能會導致問題發生。在某些情況下,您可能會考慮將往返傳送大量訊息的服務整合。若您發現自己處於合併更多服務只是為了減少繁瑣的狀態中,則您應審視自己的問題網域和網域模型。

通訊協定

在本白皮書先前的章節 非同步通訊與輕量型傳訊 中,對可能使用的不同通訊協定進行說明。使用 HTTP 等簡單的通訊協定,對微型服務而言很常見。服務所交換的訊息,可以用不同的方式編碼,例如,使用人類可讀的 JSON 或 YAML 等格式,或使用有效率的二進位格式,例如 Avro 或協定緩衝區。

快取

若要減少微型服務架構的延遲和繁瑣性,快取是一項絕佳的方法。取決於實際的使用案例和瓶頸,有可能使用好幾個快取層。在 AWS 上執行的許多微型服務的應用程式,會使用 ElastiCache,透過在本機建立結果的快取,來減少對其他微型服務發出的呼叫量。API Gateway 提供內建的快取層,以減少後端伺服器上的負載。此外,快取對減少資料持久層的負載,也非常有用。所有快取機制的挑戰,是在良好的快取命中率和資料的時效及一致性之間,找到適當的平衡。