⑴Apache Thrift是一款服务开发框架,提供跨语言服务开发功能,用户可以在软件上使用多种语言开发自己的服务项目。软件支持多种数据类型,提供多种接口类型,满足大部分程序接入需求,提高用户效率。
⑵Apache Thrift功能:
⑶界面描述语言-一切都在IDL文件中指定,可以从该文件生成多种语言的绑定。
⑷语言绑定-许多语言和环境都支持Thrift
⑸Smalltalk
⑹~名称空间-每个Thrift文件位于其自己的名称空间中,允许您在多个Thrift文件中使用相同的标识符
⑺语言名称空间-每个Thrift文件,您可以指定每种编程语言应使用的名称空间
⑻基本类型-Thrift有少量的基本类型。
⑼常量和枚举-可以为常量值分配逻辑名称
⑽结构-使用结构对相关数据进行分组。结构可以具有任何类型的字段。
⑾稀疏结构-尚未设置的可选基本字段和为空的参考字段将不会通过电线发送
⑿结构演化-通过使用字段的整数标识符来处理字段的添加和删除,而不会破坏现有的客户端
⒀容器-您可以使用任何类型的集,列表和映射:基本类型,结构和其他容器。
⒁类型定义-可以给任何类型一个更好地描述它的名称
⒂服务-服务是一组功能
⒃服务继承-子服务实现其基本服务的所有功能,并且可以具有其他功能
⒄异步调用-可以异步调用不返回结果的函数,因此在服务器完成对请求的处理之前,不会阻塞客户端。服务器可以并行/无序执行同一客户端的异步调用
⒅异常-如果发生错误,则函数可以引发标准或用户定义的异常
⒆循环结构-从..版开始,Thrift支持包含自身的结构或以后要声明的其他结构。
⒇Apache Thrift不支持以下功能:
⒈struct继承-改用struct组合
⒉多态-由于没有继承,因此也不支持多态
⒊重载-服务中的所有方法都必须唯一地命名
⒋异构容器-容器中的所有物品都必须是同一类型
⒌空返回-无法直接从函数返回空。使用包装器结构或标记值代替
⒍Apache Thrift是一个软件项目,涉及多种编程语言和用例。我们的目标是使跨语言的可靠,高性能的通信和数据序列化尽可能高效和无缝。Thrift最初由Facebook开发,于年月开源,并于年月进入Apache孵化器。Thrift于年月成为Apache TLP。
⒎Apache Thrift旨在体现以下价值观:
⒏简单性 Thrift代码简单易用,没有不必要的依赖关系。
⒐透明 节俭符合所有语言中最常见的习惯用法。
⒑一致性 生态位,特定于语言的功能属于扩展,而不是核心库。
⒒性能 力争性能第一,优雅第二。