• Thrift总结(三)Thrift框架


    1.数据类型

    • 基本类型:
      • bool:布尔值,true 或 false,对应 Java 的 boolean
      • byte:8 位有符号整数,对应 Java 的 byte
      • i16:16 位有符号整数,对应 Java 的 short
      • i32:32 位有符号整数,对应 Java 的 int
      • i64:64 位有符号整数,对应 Java 的 long
      • double:64 位浮点数,对应 Java 的 double
      • string:utf-8编码的字符串,对应 Java 的 String
    • 结构体类型:
      • struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBean
    • 容器类型:
      • list:对应 Java 的 ArrayList
      • set:对应 Java 的 HashSet
      • map:对应 Java 的 HashMap
    • 异常类型:
      • exception:对应 Java 的 Exception
    • 服务类型:
      • service:对应服务的类

    2.服务端编码基本步骤:

    • 实现服务处理接口impl
    • 创建TProcessor
    • 创建TServerTransport
    • 创建TProtocol
    • 创建TServer
    • 启动Server

    3.客户端编码基本步骤:

    • 创建Transport
    • 创建TProtocol
    • 基于TTransport和TProtocol创建 Client
    • 调用Client的相应方法

    4.数据传输协议

    • TBinaryProtocol : 二进制格式.
    • TCompactProtocol : 压缩格式
    • TJSONProtocol : JSON格式
    • TSimpleJSONProtocol : 提供JSON只写协议, 生成的文件很容易通过脚本语言解析

    tips:客户端和服务端的协议要一致

    5.Selector服务端实现模式

    • TSimpleServer  : 简单的单线程服务模型,常用于测试.
    • TThreadedServer : 多线程服务模型,使用阻塞式IO,每个请求创建一个线程。(java 不支持)
    • TThreadPoolServer : 多线程服务模型,使用标准的阻塞式IO,预先创建一组线程处理请求。
    • TThreadedSelectorServer : 允许你用多个线程来处理网络I/O。它维护了两个线程池,一个用来处理网络I/O,另一个用来进行请求的处理
    • TNonblockingServer : 多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式),只有一个线程来处理消息
    • THsHaServer : 半同步半异步的服务模型,一个单独的线程用来处理网络I/O,一个worker线程池用来进行消息的处理
  • 相关阅读:
    mongodb下载、安装、配置服务启动、及可视化工具下载、使用
    Selenium2(webdirver)入门之环境搭建(Java版)
    xampp默认mysql数据库root密码的修改
    sqoop导出工具
    sqoop导入数据到hive---2
    luigi学习4-构建工作流
    luigi学习3-使用luigid
    scala学习笔记2
    luigi学习-luigi的配置文件
    luigi学习2-在hadoop上运行Top Artists
  • 原文地址:https://www.cnblogs.com/zhangweizhong/p/7105712.html
Copyright © 2020-2023  润新知