• thrift总结


    定义:

    Apache Thrift是一个facebook建立的RPC框架,现在是一个Apache的顶级项目。Thrift允许通过一个跨语言的定义文件的方式定义数据类型和服务接口,【这个文件】作为【RPC】客户端和服务器通信的标准

    thrift安装:


    ①安装依赖:$ yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel 
    ②安装thrift:
    下载:$ wget http://archive.apache.org/dist/thrift/0.9.0/thrift-0.9.0.tar.gz 
    解压:$ tar zxvf thrift-0.9.0 
    运行:$ cd thrift-0.9.0 
    $ ./bootstrap.sh 
    $ ./configure 
    $ make 
    $ make install 
    ③安装handle基类:
    $cd ./contrib/fb303/
    $./bootstrap.sh 
    $./configure
    $make
    $make install 

    ④验证:$ thrift -version 
    thrift version 0.9.0

    thrift常用命令:
    thrift -r -gen cpp UserFileIdentify.thrift (c++)
    thrift -r -gen java UserFileIdentify.thrift (java)
    thrift -r -gen java UserFileIdentify.thrift (php)

    一个栗子(在10.0.0.40下)--------------------------------

    dev@DEV101:~/pzhang$ rm -rf gen-java
    dev@DEV101:~/pzhang$ ls
    gen-php UserFileIdentify.thrift
    dev@DEV101:~/pzhang$ thrift -r -gen java UserFileIdentify.thrift 
    dev@DEV101:~/pzhang$ ls
    gen-java gen-php UserFileIdentify.thrift
    dev@DEV101:~/pzhang$ cd gen-java/
    dev@DEV101:~/pzhang/gen-java$ ls
    ReceivedTRT.java UpdateValueByTableThriftService.java

    常识概念

    (1)基本概念
    Thrift中的几个概念:
    Server 服务模型
    Handler 数据处理接口
    Processor 数据处理对象
    Protocol 数据传输协议
    Transport 数据传输方式

    (2)支持的传输格式
    TBinaryProtocol – 二进制格式.
    TCompactProtocol – 压缩格式
    TJSONProtocol – JSON格式
    TSimpleJSONProtocol –提供JSON只写协议, 生成的文件很容易通过脚本语言解析。
    TDebugProtocol – 使用易懂的可读的文本格式,以便于debug

    (3) 支持的通信方式(数据传输方式)(Transport)
    TFileTransport:文件(日志)传输类,允许client将文件传给server,允许server将收到的数据写到文件中。
    THttpTransport:采用Http传输协议进行数据传输
    TSocket:采用TCP Socket进行数据传输
    TZlibTransport:压缩后对数据进行传输,或者将收到的数据解压

    (4)客户端编写的一般步骤:
    1. 创建Transport
    2. 创建Protocol方式
    3. 基于Transport和Protocol创建Client
    4. 运行Client的方法

    ==========================================一个demo======================================================

     http://files.cnblogs.com/files/bestzhang/helloword.zip

  • 相关阅读:
    解决方案-BI:百科
    un-Error-ASP.NET:“/tbm6”应用程序中的服务器错误。
    JS-jQuery-EasyUI-Layout-Tabs:Tabs 标签页/选项卡
    JS-jQuery-EasyUI-Layout:Layout 布局
    jQuery-EasyUI-CSS:Icon 图标
    jQuery-EasyUI:Layout
    JS-jQuery-EasyUI:CSS
    JS-jQuery-EasyUI :目录
    ORM:百科
    ORM- IBatisNet:百科
  • 原文地址:https://www.cnblogs.com/bestzhang/p/6001462.html
Copyright © 2020-2023  润新知