大数据经典论文解读
徐文浩
bothub 创始人
13844 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 59 讲
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

复习课(四)| Thrift

你好,我是黄金。这次我们要复习的论文内容,是 Facebook 在 2007 年发表的这篇 Thrift 的论文。

Thrift 介绍

2007 年前后,随着 Facebook 的业务发展,流量激增,服务之间的关系变得越来越复杂,他们的工程师开始尝试使用多种编程语言,来提升服务组合的性能、开发的简易性和速度,以及现有库的可用性,他们试图寻找一种透明的、高效的,并且能够沟通不同编程语言的协议框架。不过最后,Facebook 并没有找到适合自己口味的开源软件,同时期的 Protobuf 还处于闭源状态,所以工程师们就开发了 Thrift 这个项目。
论文中提到,在 Facebook 内部,Thrift 作为搜索服务的协议层和传输层,它允许服务端团队使用高效的 C++ 语言、前端团队使用 PHP 语言访问搜索服务,允许运维团队使用 Python 语言获取服务状态信息。另外,Thrift 还能用于记录日志、追踪请求的处理。
那么接下来,我们就一起来具体复习下 Thrift 这个框架。

跨语言

首先,作为一种跨语言的序列化协议框架,Thrift 需要定义好支持的数据类型,以透明地适配不同语言的类型系统。
在论文中提到,Thrift 支持的类型包括了基础类型 bool、byte、i16、i32、i64、double、string,容器类型 list、set、map,以及结构体类型。一个结构体是由基础类型、容器类型和子结构体组合而成的。一个这样的通用类型系统,让使用者可以灵活地定义协议字段,而不用关心如何适配到不同的语言,以及在对应的语言中如何解析该字段。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Facebook在2007年发表的Thrift论文介绍了一种跨语言的序列化协议框架,旨在解决服务之间复杂关系和不同编程语言之间的通信问题。Thrift支持多种数据类型,包括基础类型、容器类型和结构体类型,使得用户可以灵活定义协议字段而不用担心不同语言的适配和解析。该框架采用紧凑的二进制编码格式,提供了BinaryProtocol和CompactProtocol两种编码方式,以节约传输流量。Thrift还具有可扩展性,用户可以在Transport层和Protocol层进行定制,同时支持向前向后兼容,使得服务不断演化时能够保持通信的稳定。总的来说,Thrift的设计体现了对跨语言、紧凑编码、可扩展性和兼容性的重视,为解决大数据系统中的通信问题提供了有力支持。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部