特性

师成师成· 更新于 2026-09-28· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Apache Thrift 特性

  • 接口描述语言——所有内容都在一个 IDL 文件中指定,可以从该文件生成多种语言的绑定代码。参见 Thrift IDL

  • 语言绑定——Thrift 支持多种语言和环境

    • C++
    • C#
    • Cocoa
    • D
    • Delphi
    • Erlang
    • Haskell
    • Java
    • OCaml
    • Perl
    • PHP
    • Python
    • Ruby
    • Smalltalk
  • 命名空间——每个 Thrift 文件都位于自己的命名空间中,允许你在多个 Thrift 文件中使用相同的标识符

  • 语言命名空间——针对每个 Thrift 文件,你可以指定每种编程语言各自应使用的命名空间

  • 基础类型——Thrift 提供少量基础类型。参见 Thrift 类型

  • 常量与枚举——常量值可以赋予有意义的名称

  • 结构体——使用结构体对相关数据进行分组。结构体可以包含任意类型的字段。参见 Thrift 类型

  • 稀疏结构体——未设置的可选基础类型字段以及为 null 的引用字段不会在网络上发送

  • 结构体演进——通过为字段使用整数标识符,可以在增加或删除字段时不影响现有的客户端

  • 容器——你可以使用任意类型的集合、列表和映射,包括基础类型、结构体以及其他容器。参见 Thrift 类型

  • 类型定义——任何类型都可以赋予一个更能描述其含义的名称

  • 服务——服务是一组函数

  • 服务继承——子服务实现其基服务的全部函数,并且可以拥有额外的函数

  • 异步调用——不返回结果的函数可以以异步方式调用,这样客户端就不必一直阻塞到服务器处理完请求为止。服务器可以并行或乱序执行对同一客户端的异步调用

  • 异常——发生错误时,函数可以抛出标准异常或用户自定义异常。参见 Thrift 类型

  • 循环结构体——从 0.9.2 版本开始,Thrift 支持包含自身或稍后声明的其他结构体的结构体

非特性

Apache Thrift 不支持以下功能:

  • 结构体继承——请改用结构体组合
  • 多态——由于不支持继承,因此也不支持多态
  • 重载——服务中的所有方法必须具有唯一的名称
  • 异构容器——容器中的所有元素必须是同一类型
  • 返回 null——不能从函数直接返回 null,请改用包装结构体或标记值

评论

登录后参与评论

正在加载评论…