Thrift简介—续

简介: Thrift简介—续

     结合上一篇的内容,Thrift简介,继续对thrift做一个完整的介绍。

模块化和序列化

   要从客户端到服务器进行函数调用,客户端和服务器都必须同意数据交换的表示形式。于是,解决此问题的典型方法是选择一种交换格式,然后将所有要交换的数据转换为该交换格式。

   数据往返交换的过程格式称为序列化本质上,将复杂的存储对象转换为串行的字节流。

如下图所示:

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

   Apache Thrift序列化框架的一个相当独特的功能是它并不绑定单个序列化协议。 Apache Thrift提供的序列化层是模块化的,可以从各种序列化协议中选择,甚至可以创建自定义序列化协议。开箱即用的Apache Thrift支持高效

二进制序列化协议,这是一种紧凑的协议,可减少序列化对象的大小。


性能

   Apache Thrift非常适合许多分布式计算设置,同时在高性能后端服务方面表现也很出色

   Apache Thrift框架提供了一系列用于序列化的预构建和自定义协议。这使得应用程序设计人员可以根据应用程序的性能需求选择最合适的序列化协议。

   Apache Thrift RPC服务器是轻量级的,仅执行托管Apache Thrift服务的任务。提供多种语言的服务器选择,使应用程序设计人员可以灵活地选择最适合其应用程序需求的并发模型。

20210527153548522.png

   如上图所示,Apache Thrift的轻量级性质及其有效的序列化协议的选择使Apache Thrift可以满足一系列性能要求,同时兼顾了性能和交互的部分。同时为多种语言和平台提供了支持。


跨平台

   Apache Thrift还支持多种平台,包括Windows,iOS,OS X,Linux,Android和许多其他类似Unix的系统。

接口演变和CI&CD

   接口演变是指随着时间的推移逐步更改接口元素,而不会破坏与旧版本接口构建的模块的互操作性的过程。

   例如,假设有一个C程序,它在每次执行时将以C语言结构捕获的数据写入磁盘。假设写入字段包含日期,时间,位置和级别的字段。接下来,假设struct字段是C程序与Ruby数据分析程序共享的Apache Thrift IDL接口的一部分。Apache Thrift的界面演化功能允许在不破坏Ruby应用程序的情况下将新字段添加到结构中。Ruby程序将继续读取旧的和新的文件,只需忽略新字段即可。如果Ruby方面的程序员对新字段感兴趣,他们可以在需要时添加对他们的支持。

   Apache Thrift之类的现代RPC系统提供了许多功能,这些功能允许接口随着时间的推移而改进,不会破坏与现有系统的兼容性。可以使用新参数扩展功能,可以删除旧参数,并提供默认值。可以正确应用这些更改,而不会影响使用旧版接口的系统


持续集成(CI)和持续交付(CD)

   持续集成是一种软件开发方法,其中,对系统的更改经常合并到中央代码库中。这些更改通常由自动化系统连续构建和测试,从而在补丁程序产生冲突或失败的测试时为开发人员提供快速反馈。要使CI成为逻辑上的结论,就需要将成功合并的代码高频迁移到评估和最终生产系统。这些过程通常每天发生多次。

   持续集成和交付系统的目标是承担许多小风险并提供即时反馈,而不是承担大风险并延迟较长发布周期的反馈。集成延迟时间越长,集成任务中涉及的补丁越多,这使得识别和修复冲突和错误的根源变得更加困难。

   Apache Thrift对接口演变的支持则大大简化了正在进行的软件维护和扩展的任务,尤其是在大型企业中。诸如持续集成(CI)和持续交付(CD)之类的现代工程技术要求系统支持增量改进。

   不提供某种形式的接口演变的系统在更改时往往会付出比较大的代价,即更改接口通常意味着必须重写或至少重新编译使用该接口的所有客户端和服务器。而Apache Thrift接口演变功能允许多个接口版本共存,使增量更新变得可行。

   以上便是thrift的完整介绍,欢迎交流~

相关文章
|
JavaScript Java Linux
Go语言 thrift 入门指南--thrift IDL介绍
Thrift 是一个轻量级、跨语言的 RPC 框架,由 facebook 开发,2007年正式开源,2008 纳入 Apache 软件基金会开源项目。
1644 0
Go语言 thrift 入门指南--thrift IDL介绍
|
Java API 分布式数据库
HBase thrift/thrift2 使用指南
Thrift server简介 Thrift server是HBase中的一种服务,主要用于对多语言API的支持。基于Apache Thrift(多语言支持的通信框架)开发,目前有两种版本thrift和thrift2。
19922 0
|
存储 自然语言处理 负载均衡
Thrift简介
Thrift简介
|
JSON 前端开发 JavaScript
thrift 安装及入门
thrift 安装及入门
953 0
thrift 安装及入门
|
JSON 网络协议 Java
thrift 原理浅析
thrift 原理浅析
356 0
thrift 原理浅析
|
编译器 Apache
Thrift架构与使用方法
Thrift架构与使用方法
257 0
Thrift架构与使用方法
|
Java Apache 数据格式
Thrift简明教程
Thrift是个RPC框架,它的目标是为各种流行的开发语言提供便利的RPC调用机制,而不需要使用那些开销巨大的方式,比如SOAP。 Thrift使用语言中立的服务定义文件(IDL,接口描述语言),描述数据类型和服务接口。
2541 0
|
JSON Java Apache
thrift概述
Apache Thrift 是FaceBook实现的一种跨平台的远程服务调用(RPC)的框架。它采用接口描述语言(IDL)定义并创建服务,传输数据采用二进制格式,相对于XML和Json等常用数据传输方式体积更小。
953 0
|
Java C# C++
Thrift简析
Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性。
1117 0