数码资源网·下载

展开

Apache Thrift(服务开发框架)

大小:4M语言:4M 类别:编程开发系统:WinXP/Win7/Win10
简介|文章|评论
版本:v0.14.1官方版 for WinXP/Win7/Win10时间:2021-03-19
软件介绍

Thrift是由Apache开发的一款服务开发框架,采用强大的软件堆栈和代码生成引擎,可允许用户自定义一个简单的文件中的数据类型和服务接口,快速地生成RPC客户端和服务器通信的无缝跨编程语言,需要的朋友赶快下载吧!

【软件介绍】

Apache Thrift是一个跨语言的服务框架,本质上为RPC,同时具有序列化、反序列化机制;当我们开发的service需要开放出去的时候,就会遇到跨语言调用的问题,JAVA语言开发了一个UserService用来提供获取用户信息的服务,如果服务消费端有PHP/Python/C++等,我们不可能为所有的语言都适配出相应的调用方式,有时候我们会很无奈的使用Http来作为访问协议;但是如果服务消费端不能使用HTTP,而且更加倾向于以操作本地API的方式来使用服务,那么我们就需要Thrift来提供支持.

【软件优势】

  1、节俭的类型

  Thrift类型系统旨在使程序员无论使用哪种编程语言,都可以尽可能多地使用本机类型。此信息基于并且取代了Thrift白皮书中的信息。的节俭IDL提供了用于产生针对每个目标语言代码的类型的描述。

  2、基本类型

  选择基本类型的目的是简化和清楚而不是数量众多,重点放在所有编程语言中可用的键类型上。

  bool:布尔值(对或错)

  字节:8位有符号整数

  i16:16位有符号整数

  i32:32位有符号整数

  i64:64位有符号整数

  double:64位浮点数

  字符串:使用UTF-8编码编码的文本字符串

  3、结构

  节俭结构定义了一个公共对象?它们本质上等同于OOP语言中的类,但没有继承。一个结构具有一组强类型字段,每个字段都有一个唯一的名称标识符。字段可能具有Thrift IDL中描述的各种注释(数字字段ID,可选的默认值等) 。

  4、容器

  节俭容器是强类型的容器,它们映射到大多数编程语言中的常用容器和常用容器类型。

  共有三种容器类型:

  列表:元素的有序列表。转换为STL向量,Java ArrayList,脚本语言的本机数组等。

  放:无序的唯一元素集。转换为STL集,Java HashSet,Python中的集等。注意:PHP不支持集,因此与List相似。

  map :严格唯一的键到值的映射。转换为STL映射,Java HashMap,PHP关联数组,Python / Ruby字典等。尽管提供了默认值,但类型映射未明确固定。添加了自定义代码生成器指令,以允许以各种目标语言替换自定义类型。

【软件特色】

  Apache Thrift是一个软件项目,涉及多种编程语言和用例。我们的目标是使跨语言的可靠,高性能的通信和数据序列化尽可能高效和无缝。Thrift于2007年4月开源,并于2008年5月进入Apache孵化器。Thrift于2010年10月成为Apache TLP。

  Apache Thrift旨在体现以下价值观:

  简单性 Thrift代码简单易用,没有不必要的依赖关系。

  透明 节俭符合所有语言中最常见的习惯用法。

  一致性 生态位,特定于语言的功能属于扩展,而不是核心库。

  性能 力争性能第一,优雅第二。

【使用说明】

1、客户过程以正常方式调用客户桩(client stub,一段代码);

2、客户桩生成一个消息,然后调用本地操作系统;

3、客户端操作系统将消息发送给远程操作系统;

4、远程操作系统将消息交给服务器桩(server stub,一段代码);

5、服务器桩将参数提取出来,然后调用服务器过程;

6、服务器执行要求的操作,操作完成后将结果返回给服务器桩;

7、服务器桩将结果打包成一个消息,然后调用本地操作系统;

8、服务器操作系统将含有结果的消息发送回客户端操作系统;

9、客户端操作系统将消息交给客户桩;

10、客户桩将结果从从消息中提取出来,返回给调用它的客户过程;

【功能介绍】

  Apache Thrift功能:

  界面描述语言-一切都在IDL文件中指定,可以从该文件生成多种语言的绑定。

  语言绑定-许多语言和环境都支持Thrift

  C++

  C#

  Cocoa

  D

  Delphi

  Erlang

  Haskell

  Java

  OCaml

  Perl

  PHP

  Python

  Ruby

  Smalltalk

  ~名称空间-每个Thrift文件位于其自己的名称空间中,允许您在多个Thrift文件中使用相同的标识符

  语言名称空间-每个Thrift文件,您可以指定每种编程语言应使用的名称空间

  基本类型-Thrift有少量的基本类型。

  常量和枚举-可以为常量值分配逻辑名称

  结构-使用结构对相关数据进行分组。结构可以具有任何类型的字段。

  稀疏结构-尚未设置的可选基本字段和为空的参考字段将不会通过电线发送

  结构演化-通过使用字段的整数标识符来处理字段的添加和删除,而不会破坏现有的客户端

  容器-您可以使用任何类型的集,列表和映射:基本类型,结构和其他容器。

  类型定义-可以给任何类型一个更好地描述它的名称

  服务-服务是一组功能

  服务继承-子服务实现其基本服务的所有功能,并且可以具有其他功能

  异步调用-可以异步调用不返回结果的函数,因此在服务器完成对请求的处理之前,不会阻塞客户端。服务器可以并行/无序执行同一客户端的异步调用

  异常-如果发生错误,则函数可以引发标准或用户定义的异常

  循环结构-从0.9.2版开始,Thrift支持包含自身的结构或以后要声明的其他结构。

  非功能

  Apache Thrift不支持以下功能:

  struct继承-改用struct组合

  多态-由于没有继承,因此也不支持多态

  重载-服务中的所有方法都必须唯一地命名

  异构容器-容器中的所有物品都必须是同一类型

  空返回-无法直接从函数返回空。使用包装器结构或标记值代替

【支持协议】

Thrift支持众多通讯协议:

TBinaryProtocol – 一种简单的二进制格式,简单,但没有为空间效率而优化。比文本协议处理起来更快,但更难于调试。

TCompactProtocol – 更紧凑的二进制格式,处理起来通常同样高效。

TDebugProtocol – 一种人类可读的文本格式,用来协助调试。

TDenseProtocol – 与TCompactProtocol类似,将传输数据的元信息剥离。

TJSONProtocol – 使用JSON对数据编码。

TSimpleJSONProtocol – 一种只写协议,它不能被Thrift解析,因为它使用JSON时丢弃了元数据。适合用脚本语言来解析。

支持的传输协议有:

TFileTransport – 该传输协议会写文件。

TFramedTransport – 当使用一个非阻塞服务器时,要求使用这个传输协议。它按帧来发送数据,其中每一帧的开头是长度信息。

TMemoryTransport – 使用存储器映射输入输出。(Java的实现使用了一个简单的ByteArrayOutputStream。)

TSocket – 使用阻塞的套接字I/O来传输。

TZlibTransport – 用zlib执行压缩。用于连接另一个传输协议。

Thrift还提供众多的服务器,包括:

TNonblockingServer – 一个多线程服务器,它使用非阻塞I/O(Java的实现使用了NIO通道)。TFramedTransport必须跟这个服务器配套使用。

TSimpleServer – 一个单线程服务器,它使用标准的阻塞I/O。测试时很有用。

TThreadPoolServer – 一个多线程服务器,它使用标准的阻塞I/O。

加载全部内容

相关应用
热门推荐
相关教程
猜你喜欢
php开发工具下载大全

php开发工具下载大全

关于PHP的开发工具还是蛮多的,大家可以到我们的php开发工...
进入专区>>
编程助手大全

编程助手大全

对于每一个程序员来说,实用的编程辅助工具将会大大的提高编程速...
进入专区>>
相关合集
本类排行