美文网首页thrift
深入浅出Thrift(一)——thrift简介以及在不同操作系统

深入浅出Thrift(一)——thrift简介以及在不同操作系统

作者: Vayne_God | 来源:发表于2018-11-06 00:48 被阅读0次

    一、Thrift简介

    Thrift是一种可扩展跨语言的服务开发框架,最初用于facebook内部系统各个语言之间的RPC通信,目前已由facebook提交到apache。Thrift作为一个高性能的RPC框架,可以满足企业对于高并发访问的需要,同时,thrift的编程模型相对简单,也能够提高服务开发的效率。因此,很多公司都采用thrift作为其基础通信组件。
    Thrift的官方网站:http://thrift.apache.org/

    二、Thrift的核心组件

    在学习Thrift的核心组件之前,我们有必要从其功能方面着手,理解各个组件的功能,这有利于我们对于Thrift整体的理解。
    Thrift作为一种RPC框架,具备了RPC框架的基本组件,当然也遵循了RPC框架的功能目标。
    借用一下官方的正式说法:RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。
    翻译成通俗一点的语言就是,在进行远程调用时,能够像本地调用一样方便,让调用者对远程调用的逻辑无感知。
    1、TProtocol 协议和编解码组件
    要实现客户端(本地调用者)和服务器(远程被调用者)的通信,需要在双方之间约定一系列的协议。我们要定义好通信所传输的数据——消息。在进行通信之前,发送方必须要将要传输的数据结构转换成字节流,也就是说,发送方需要对发送的消息进行编码,同样,接收方也需要对接收到的消息进行解码。编解码定义了将数据在数据结构和字节流之间进行互相转换的规范。
    Thrift中,协议和编解码被整合在了一起。

    2、IDL组件
    前面提到过,Thrift是一种跨语言的服务开发框架。跨语言的实现,依赖于IDL(Interface Deifnition Language)组件,IDL组件的作用就是将服务接口编译成不同语言编写的代码。

    3、TProcessor 服务调用组件
    客户端将消息发送给服务端,服务器接收到消息,对消息进行解码,通过方法调用模型完成服务端方法的调用。

    4、TTransfer 传输层
    在网络编程中,thrift会封装一层传输层来支持底层的网络通信。

    5、TServer 服务器组件
    在thrift中,TServer是作为服务器的抽象,能够提供多种类型的服务器实现。具体又可分为:非阻塞IO的server和同步的server。

    6、Client 客户端组件

    三、安装配置

    (一)windows平台安装与配置

    1、下载thrift 下载地址:
    2、在要安装的路径下新建一个thrift文件夹,将下载的thrift-X.X.X.exe重命名为thrift.exe,copy到新建的thrift文件夹。
    3、在环境变量path中添加thrift.exe的路径,我的是:D:\SoftWare\thrift
    4、Ctrl+R 输入cmd,输入thrift -version,如果显示thrift版本信息,代表安装成功。

    (二)mac OS平台安装与配置

    1、在官网下载安装包:http://thrift.apache.org/download 最新版本为0.11.0
    2、解压到需要安装的目录,然后:
    (1) cd thrift-0.11.0
    (2) ./configure
    (3) make
    (4) make install
    3、可能遇到的问题:

    Bison version 2.X or higher must be installed on the system!
    

    该问题是因为mac默认安装的Bison版本过低,此时需要进行以下操作:

    brew install bison
    cd /Library/Developer/CommandLineTools/usr/bin/bison //将系统默认安装bison的路径
    sudo mv bison bison123  //将系统默认安装的bison重命名为任意一个名字
    sudo cp /usr/local/opt/bison/bin/bison  /Library/Developer/CommandLineTools/usr/bin/  //将新安装的bison拷贝到系统默认安装bison路径下
    

    相关文章

      网友评论

        本文标题:深入浅出Thrift(一)——thrift简介以及在不同操作系统

        本文链接:https://www.haomeiwen.com/subject/jqoexqtx.html