本文主要是介绍Thrfit 中的核心概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Thrfit 中的核心概念
服务端
+-------------------------------------------+| Server || (single-threaded, event-driven etc) |+-------------------------------------------+| Processor || (compiler generated) |+-------------------------------------------+| Protocol || (JSON, compact etc) |+-------------------------------------------+| Transport || (raw TCP, HTTP etc) |+-------------------------------------------+
Thrift Server 设计大致可以分为四层,分别是:
-
Server:负责连接调度、服务的生命周期,定义接口是
TServer
-TSimpleServer
:简单的阻塞服务端
-TThreadPoolServer
:使用线程池的处理请求的阻塞服务端
-THsHaServer
:使用线程池处理请求的基于 NIO 的非阻塞服务端
-TThreadedSelectorServer
:使用多种线程池的基于 NIO 的非阻塞服务端 -
Processor:处理请求,具体的实现由生成的代码处理,定义接口是
TProcessor
TBaseProcessor
:同步处理的 ProcessorTBaseAsyncProcessor
:异步处理的 ProcessorTMultiplexedProcessor
:支持多个服务的同步 Processor
-
Protocol:请求协议,数据的编解码实现,定义接口是
TProtocol
TBinaryProtocol
:二进制协议TCompactProtocol
:压缩协议TJSONProtocol
:JSON 格式协议TMultiplexedProtocol
:支持多个 Processor 的封装协议,依赖于其他协议
-
Transport:底层的连接,提供了读写的抽象实现;服务端定义是
TServerTransport
TServerSocket
: 基于ServerSocket
的服务端 TransportTNonblockingServerSocket
:基于ServerSocketChannel
的服务端 TransportTSaslTransport
:支持 SSL 加密的 Transport
客户端
+-------------------------------------------+| Client || (sync or async generated) |+-------------------------------------------+| Protocol || (JSON, compact etc) |+-------------------------------------------+| Transport || (raw TCP, HTTP etc) |+-------------------------------------------+
Thrift Client 设计分为三层,分别是:
-
Client:客户端,用于发起请求,接收响应
-TServiceClient
:同步调用的客户端
-TAsyncClient
:异步调用的客户端 -
Protocol:请求协议,数据的编解码实现,定义接口是
TProtocol
TBinaryProtocol
:二进制协议TCompactProtocol
:压缩协议TJSONProtocol
:JSON 格式协议TMultiplexedProtocol
:支持多个 Processor 的封装协议,依赖于其他协议
-
Transport:底层的连接,提供了读写的抽象实现;客户端的定义是
TTransport
TFileTransport
: 读写文件的 TranportTHttpClient
:基于HttpClient
的 TransportTNonblockingSocket
:基于SocketChannel
的 TransportTSocket
: 基于Socket
的 TranportTSaslClientTransport
: 支持 SASL 鉴权认证的 TranportTZlibTransport
:支持压缩的 TransportTSaslTransport
:支持 SSL 加密的 Transport
参考文档
- Concepts
这篇关于Thrfit 中的核心概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!