特性
登录后可跨设备保存划线和私人笔记登录
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,请改用包装结构体或标记值
评论
登录后参与评论
正在加载评论…
KnowForge