zoukankan      html  css  js  c++  java
  • 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线程池用来进行消息的处理
  • 相关阅读:
    私有云是伪命题:真正的私有云 ≈ 公有云
    云计算的重新构建架构:优化迁移策略
    五个顶级的大数据架构
    Algorithm Gossip: 费式数列
    Algorithm Gossip: 河内塔
    Mysql连接报错:Unknown system variable 'language'
    ssm整合的时候出现的abstactMethodArror 解决
    java集合整理
    Oracle的序列和索引
    关于java堆栈的理解与说明
  • 原文地址:https://www.cnblogs.com/zhangweizhong/p/7105712.html
Copyright © 2011-2022 走看看