数仓工具—Hive源码之扩展篇Thrift(5)

Thrift

后面我们要介绍Hive 源码会涉及到关于Thrift 框架的一些东西,所以这里我们先介绍一下Thrift,是Facebook公布的一款开源跨语言的RPC框架,最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器,现在是 Apache 基金会的顶级项目,著名的 Key-Value 存储服务器 Cassandra 就是使用 Thrift 作为其客户端API的。

RPC全称为Remote Procedure Call,意为远程过程调用.

假设有两台服务器A,B.A服务器上部署着一个应用a,B服务器上部署着一个应用b,现在a希望能够调用b应用的某个函数(方法),但是二者不在同一个进程内,不能直接调用,就需要通过网络传输,在AB服务器之间建一条网络传输通道,a把参数传过去,b接收到参数调用自己的方法,得到结果,再通过网络传回给a,简单讲就是A通过网络来调用B的过程.这个过程要涉及的东西很多,比如多线程,Socket,序列化反序列化,网络I/O,很复杂,于是牛掰的程序员把这些封装起来做成一套框架,供大家使用,就是RPC框架

Thrift 是一个软件框架(远程过程调用框架),用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引 擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。

thrift支持数据(对象)序列化和多种类型的RPC服务,它提供了一套解决方案,可以解决各系统间大数据量的传输通信以及系

猜你喜欢

转载自blog.csdn.net/king14bhhb/article/details/118731966