不错的C++框架: Thrift(2)-传输和网络相关

本文详细介绍了Thrift框架中涉及的传输和网络相关组件,包括协议类如TJSONProtocol和TCompactProtocol,传输类如TFDTransport、TSocket以及THttpTransport,服务器类如TThreadPoolServer和TNonblockingServer,并讨论了TCP连接的超时设置、套接字选项如TCP_NODELAY和SO_LINGER等关键细节。
摘要由CSDN通过智能技术生成

1.  协议类

定义了输出string, struct, int等其数据表达格式

 

TJSONProtocol->TProtocol
TCompactProtocol->TVirtualProtocol->TProtocol
TDenseProtocol->TBinaryProtocol->TVirtualProtocol->TProtocol
class TDebugProtocol : public TVirtualProtocol<TDebugProtocol>
TVirtualProtocol增加了xx_virt到TProtocol对应接口xx的转发

 

 

2. 传输类

负责数据的传输,read,write,peek,flush等IO接口

2.1 实际负责传输

TFDTransport
TSocket->TIOStreamTransport->Transport
TZlibTransport
TFileTransport->TFileReaderTransport
TFileTransport->TFileReaderTransport
                        ->TFileWriterTransport(单独线程异步写)

 

2.2 UTIL传输相关的,进行了特定的保证

(TTransportUtils) TNullTransport,TPipedFileReaderTransport->TPipedTransport
                                                                                              ->TFileReaderTransport

 

2.3 缓存相关

TBufferedTransport->TBufferBase->TVirtualTransport  //指定大小的缓存
TFramedTransport->TBufferBase->TVirtualTransport    //只有flush才输出
TMemoryTransport->TBufferBase->TVirtualTransport    //可动态自动增加内存

 

2.4 业务相关的修饰类,对输出的数据进行修饰。实际传输依赖于2.1中的传输类

THttpServer->THttpTransport->TVirtualTransport
THttpClient->THttpTransport->TVirtualTransport

 

 

3. 服务器类

负责监听和处理转发

 

TThreadPoolServer, 通过线程池进行外发处理
TThreadedServer, 启用单线程对业务处理&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值