Thrift 分层模型及简介

本文介绍了Thrift的分层模型,包括IDL定义服务接口,TProtocol协议层(如二进制、压缩、JSON格式),Transport传输层(如TSocket、TFramedTransport等),Processor处理层以及不同类型的server(如TSimpleServer、TThreadPoolServer等)的工作模式。Thrift通过这些层实现了跨语言服务交互和高效的数据传输。
摘要由CSDN通过智能技术生成

目录

1 IDL

2 分层模型简介

2.1 TProtocol(协议层)

2.2 Transport(传输层)

2.3 Processor (处理层)

2.4  server(服务层工作模式)

3 工作原理简介


1 IDL

Thrift 采用IDL(Interface Definition Language)来定义通用的服务接口,然后通过Thrift提供的编译器,可以将服务接口编译成不同语言编写的代码,通过这个方式来实现跨语言的功能。

  • 基本字段类型如下(括号内对应的是 Java 类型):

    • bool (boolean)

    • byte (byte)

    • i16 (short)

    • i32 (int)

    • i64 (long)

    • double (double)

    • string (String)

    • binary (byte)

    注:thrift不支持无符号整型。

  • 容器类型

  • list (List)

  • set (Set)

  • map (Map)

  • 结构体 struct,等同于 Java 中的类

    struct Student {
      1: i32 age,
      2: string name
    }
  • 服务 service

    //“Twitter”与“{”之间需要有空格!!!
    service Twitter {
     
    // 参数列表和异常列表定义方式与结构体中域定义方式一致.
     
    void ping(),                                   
     
    bool postTweet(1:Tweet tweet);                  
     
    // ”oneway”标识符表示client发出请求后不必等待回复(非阻塞)直接进行下面的操作,
     
    // ”oneway”方法的返回值必须是void
     
    oneway void zip()                               
     
    void test() throws (1:GenericException genericException);//声明抛出自定义异常
    }

    注意,函数中参数列表的定义方式与struct完全一样。Service支持继承,一个service可使用extends关键字继承另一个service

  • 其他

    • 0
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值