

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 同步通訊
<a name="synchronous"></a>

在同步通訊中，用戶端會啟動對服務的請求，如下圖所示。範例包括擷取資訊的請求，例如`HTTP GET`請求，或變更資料的請求，例如`HTTP PUT`請求。在任何一種情況下，用戶端都會等待伺服器回應，然後再繼續。大多數開發人員都熟悉同步呼叫，易於實作和疑難排解，而且在許多情況下， 是廣泛接受的通訊標準。

![用戶端與微服務之間或微服務之間的同步通訊。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modernization-integrating-microservices/images/synchronous-communication.png)


同步通訊的優點包括：
+ **可預測的流程控制** – 確定性執行和清除請求回應週期，相較於非同步通訊，這些週期更容易理解。
+ **高度一致性** – 立即確認資料變更和狀態更新。
+ **簡單錯誤處理** – 直接傳播錯誤和例外狀況。
+ **簡易偵錯** – 直接的請求追蹤和監控。
+ **通訊協定支援** – 建立良好的通訊協定，例如 HTTP 和 REST，讓實作變得簡單。

同步通訊有一些缺點：
+ **緊密耦合 – **服務對彼此可用性的直接相依性。
+ **網路影響** – 由於持續開放連線而增加網路負載。
+ **資源使用率** – 維護連線狀態的記憶體使用量較高。
+ **串聯失敗** – 能夠讓一個服務中的問題快速傳播到系統中。