1. 程式人生 > >同步訊息和非同步訊息傳遞的區別?

同步訊息和非同步訊息傳遞的區別?

在系統互動時候選擇同步還是非同步有時候很讓人困擾,希望通過閱讀這篇文章可以幫助更好的理解同步與非同步。

同步與非同步訊息的區別

1、同步訊息

      同步訊息傳遞涉及到等待伺服器響應訊息的客戶端。訊息可以雙向地向兩個方向流動。本質上,這意味著同步訊息傳遞是雙向通訊。即傳送方向接收方傳送訊息,接收方接收此訊息並回復發送方。傳送者在收到接收者的回覆之前不會發送另一條訊息。

同步執行的特徵為:在兩個通訊應用系統之間必須要進行同步, 兩個系統必須都在正常執行, 並且會中斷客戶端的執行流, 轉而執行呼叫。傳送程式和接收程式都必須一直做好相互通訊的準備。傳送程式首先向接收程式發起一個請求(傳送訊息)。傳送程式緊接著就會堵塞它自身的程序, 直到收到接收程式的響應。傳送程式在收到響應後會繼續向下進行處理。

2.非同步訊息

非同步訊息傳遞涉及不等待來自伺服器的訊息的客戶端。事件用於從伺服器觸發訊息。因此,即使客戶機被關閉,訊息傳遞也將成功完成。非同步訊息傳遞意味著,它是單向通訊的一種方式,而交流的流程是單向的。

當使用非同步訊息傳送時, 呼叫者在傳送訊息以後可以不用等待響應, 可以接著處理其他任務。對於非同步通訊, 一個應用程式(請求者或傳送者)將請求傳送給另一個應用程式, 然後可以繼續向下執行它自身的其他任務。傳送程式無須等待接收程式的執行和返回結果, 而是可以繼續處理其他請求。與同步方式不同, 非同步方式中兩個應用系統(傳送程式和接收程式)無須同時都在執行, 也無須同時都在處理通訊任務。

同步和非同步訊息傳遞的優點和缺點

        非同步訊息傳遞有一些關鍵優勢。它們能夠提供靈活性並提供更高的可用性——系統對資訊採取行動的壓力較小,或者以某種方式立即做出響應。另外,一個系統被關閉不會影響另一個系統。例如,電子郵件——你可以傳送數千封電子郵件給你的朋友,而不需要她回覆你。

        非同步的缺點是它們缺乏直接性。沒有直接的相互作用。考慮一下與你的朋友在即時通訊或電話上聊天——除非你的朋友及時回覆你,否則這不是聊天或談話。

非同步訊息傳遞允許更多的並行性。由於程序不阻塞,所以它可以在訊息傳輸時進行一些計算。