簡體   English   中英

Rsocket 是如何實現異步的?

[英]How is Rsocket Asynchronous?

我是 rsocket 的新手,目前正在學習它相對於 HTTP2 和其他協議的優勢。 我不明白的一件事是:

RSocket 協議接受了這一點,並將所有通信建模為單個網絡連接上的多路復用消息流,並且在等待響應時從不同步阻塞。

這里的同步性是什么意思? 可以說,通過 HTTP2/1.1(使用 Spring 的 WebClient,它是非阻塞和反應式的)和其他通過 rsocket 對 REST 端點進行了兩次調用。 會有什么不同?

RSockets 協議旨在允許通過單個網絡連接同時傳輸多個數據流 在開始另一個流之前不阻塞或等待對一個流的響應。

HTTP/2 和 HTTP/1.1 等協議不允許通過單個連接傳輸多個數據流 它們建立在每個請求都被單獨發送和處理的概念之上。 它純粹是在一對一的基礎上工作的。

Send a request > Wait for answer > Receive Answer > Send next request

(這就是 HTTP/1.1 的基本工作方式。HTTP/2 有點不同,但建立在這個框架上)

使用 Springs WebClient 可以通過允許異步請求來幫助您解決 HTTP/2 和 HTTP/1.1 的一些限制。 盡管您應該知道它仍然依賴於 HTTP 協議來支持同步流,因此它可能無法提供與 RSocket 相同級別的性能和效率

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM