为什么apache将传输层分为低级传输和传输包装

问题描述 投票:1回答:1

我认为划分Apache Thrift传输层的原因是因为低级传输只是使用/包装一些基本的Java函数,比如socket。并且传输包装器仅使用zlib-transport或framed-transport准备数据,并使用其他传输将其发送到网络。但是HttpClient也是一个传输包装器,并没有使用另一个传输来发送。

那么Apache Thrift将传输层划分为低级传输和传输包装的原因是什么?

资料来源:https://thrift.apache.org/docs/Languages

thrift
1个回答
1
投票

近年来,术语“分层传输”和“端点传输”已经被创造出来,并且它们对它进行了相当好的描述。

这个想法就是这样

  1. 你总是需要一个(端点)传输来从线上或从线上写入/读取数据或者它的物理等价物。
  2. 您可能希望在端点传输之上添加其他功能层,例如压缩数据,通过缓冲区优化传输或“框架”传输,添加加密或其他任何想法。

虽然第1部分是强制性的,但第2部分则不是。此外,您可以将多个分层传输堆叠在一起:

  • protocol = compact
  • 分层传输=自定义加密传输
  • 分层运输=框架运输
  • 端点传输=套接字

在其他一些目标中,Thrift旨在提供极大的灵活性和模块性,从而通过模块化实现灵活性。当您查看TTransport / TServerTransport或TProtocol的核心基础时,您会发现当需要自定义传输或协议时,实际上并不需要实现大量代码。

而且由于加密或缓冲之类的东西与使用的任何传输或协议没有硬性依赖关系,因此通过设计使它们保持独立是很自然的。这就是Thrift协议/传输堆易于使用且易于扩展的原因。它可以让您构建出色的应用程序,而不会妨碍您。

PS:更好的阅读可能是:https://thrift.apache.org/docs/concepts

© www.soinside.com 2019 - 2024. All rights reserved.