繁体   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