簡體   English   中英

為什么 nestjs 框架在微服務方法中使用不同於 HTTP 的傳輸層?

[英]Why does nestjs framework use a transport layer different than HTTP in a microservices approach?

如果您查看 OSI 模型,HTTP 是第 7 層(應用程序)的一部分。 TCP 是第 4 層(傳輸)。

在查看第 4 層時,沒有決定性特征使其成為 HTTP、AMPQ、gRPC 或 RTSP。 第 4 層明確說明了遠程設備如何傳輸和接收數據。


現在,這就是網絡和軟件開發世界碰撞的地方。 網絡人員將使用“傳輸”表示第 4 層,而編程人員使用“傳輸”表示將數據包傳輸到另一個組件的方式。

“傳輸”(或文檔中使用的“傳輸器”)的含義被用作此架構中如何共享消息的抽象。

如果您正在為您的微服務尋找類似 AMPQ 的東西,請查看文檔,您可以使用NATSREDIS (這兩種實現都是由它們構建的)。

https://docs.nestjs.com/microservices/basics#getting-started

OSI 層

主要原因是速度慢。 HTTP 方法的問題在於,使用 HTTP,JSON 會產生不需要的處理時間來發送和翻譯信息。

http-json 的一個問題是發送的 JSON 的序列化時間。 這是一個昂貴的過程,想象一下大數據的序列化。

除了 JSON 之外,還有許多 HTTP 標頭需要進一步解釋,這些標頭可能會被丟棄。 唯一需要考慮的是維護一個用於發送和接收消息的層。 因此,使用 JSON 的 HTTP 協議在微服務之間進行通信非常慢。 有一些優化技術,這些技術很復雜,不會增加顯着的性能優勢

此外,HTTP 等待的時間比它傳輸數據的時間要長。

暫無
暫無

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

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