zoukankan      html  css  js  c++  java
  • Thrift的简单使用

    Thrift的简单使用 - Season In The Code - 博客频道 - CSDN.NET


    Thrift的简单使用


    分类:
    Facebook技术


    3658人阅读
    评论(0)
    收藏
    举报

    Thrift(  
    http://github.com/facebook/thrift

    )是一个跨语言服务部署架构,2007年由Facebook开发,之后在2008年加到Apache计划中(  
    http://incubator.apache.org/thrift/

    )。它是类似于SOAP,CORBA以及Google Protocol Buffers这样的服务架构。Thrift提供了完整client/server RPC的实现,只需要定义好中间定义语言,就可以生成指定语言的代码(包括client和server)。

    Thrift能生成的语言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml

    使用thrift,以下例子你可以在
     
    http://incubator.apache.org/thrift/

    中找到。

    定义.thrift接口文件。



    你需要知道thrift所支持的类型( 
    http://wiki.apache.org/thrift/ThriftTypes

    )

    下面是一个简述:

    类型描述
    booltrue, false
    byte8位的有符号整数
    i1616位的有符号整数
    i3232位的有符号整数
    i6464位的有符号整数
    double64位的浮点数
    stringUTF-8编码的字符串
    binary字符数组
    struct结构体
    list<type>有序的元素列表,类似于STL的vector
    set<type>无序的不重复元素集,类似于STL的set
    map<type1,type2>key-value型的映射,类似于STL的map
    exception是一个继承于本地语言的exception基类
    service服务。包含多个函数接口(纯虚函数)

    在了解过thrift内置类型之后,我们可以简单地定义一个服务,把用户的信息从前端发送到服务器,然后当需要的时候再从服务器获取某个用户的信息:

    1. struct UserProfile {  
    2.   1: i32 uid,  
    3.   2: string name,  
    4. }  
    5.   
    6. service UserStorage {  
    7.   void store(1: UserProfile user),  
    8.   UserProfile retrieve(1: i32 uid)  
    9. }  

    把以上代码存到 service.thrift文件中。



    如果我们需要用python来做输出语言。就在命令行中输入:

    1. thrift  –r  –gen  py  service.thrift  

    之后,你就会在当前目录下看到一个新建的目录叫”gen-py”,在里面你就可以看到由service.thrift生成的python服务接口代码。

    UserStorage.py中的Client就是客户端调用的接口,只需要创建一个Client实例就可以调用例子中的store和retrieve的接口。而Iface就是服务端所需要实现的接口,对应例子中的store和retrieve的逻辑处理。

    ttypes.py是存放枚举类型的结构。

    UserStorage-remote.py是一个客户端调用服务接口的demo示例,想知道详细的可以去看看。

  • 相关阅读:
    微信小程序开发入门(六)
    JS计算日期加上指定天数得到新的日期
    Java中substring()
    List集合去除重复数据
    按钮倒计时
    jQuery中each方法
    Math三个函数
    jQuery表单提交
    jQuery 序列化表单数据
    正则取小数点后面几位
  • 原文地址:https://www.cnblogs.com/lexus/p/2778262.html
Copyright © 2011-2022 走看看