从驱动形式上,Thrift 提供的网络服务模型分为:单线程、多线程、时间驱动。
从另一个角度分为:阻塞服务模型、非阻塞服务模型。
- 阻塞服务模型: TSimpleServer, TThreadPoolServer
- 非阻塞服务模型: TNonblockingServer, THsHaServer, TThreadedSelectorServer
下面以 Java 开发的角度分析各种网络服务模型的使用场景、性能情况。
大约 5 分钟
从驱动形式上,Thrift 提供的网络服务模型分为:单线程、多线程、时间驱动。
从另一个角度分为:阻塞服务模型、非阻塞服务模型。
下面以 Java 开发的角度分析各种网络服务模型的使用场景、性能情况。
Thrift 是一个典型的 CS(客户端/服务端) 结构,客户端和服务端可以使用不同的语言开发,通过 IDL(Interface Description Language) 作为中间语言来关联客户端和服务端的语言。
Thrift 采用 IDL(Interface Description Language) 来定义通用的服务接口,然后通过 Thrift 提供的编译器,将服务接口编译成不同语言编写的代码,通过这个方式来实现跨语言的功能。
Thrift 是一个轻量级、跨语言的 RPC(Remote Procedure Call,远程过程调用) 框架,主要用于各个服务之间的 RPC 通信。
Thrift 已经在很多开源项目中被验证时稳定和高效的,例如:Cassandra, Hadoop, HBase 等。公司级的应用有 Facebook, 百度, 小米, 美团, 饿了么等。
记录 Thrift 的安装、使用。