zoukankan      html  css  js  c++  java
  • thrift架构

    thrift的架构主要如下,
    +-------------------------------------------+
    | Server (单线程、事件驱动等) |
    +-------------------------------------------+
    | Processor(由编译器生成) |
    +-------------------------------------------+
    | Protocol(JSON, 压缩等形式) |
    +-------------------------------------------+
    | Transport(TCP, HTTP 等) |
    +-------------------------------------------+

    传输(Transport)

    该层简单抽象了向网络读和写的操作。该层暴露了open、close、read、write、flush接口。在server端会使用ServerTransport对原始类型数据进行接收包含listen、accept、close接口。
    Transport主要有

    • TFileTransport – 以文件形式进行传输。
    • TMemoryInputTransport – 将内存用于I/O
    • TSocket -阻塞式socket
    • TNonblockingSocket -用于异步client的非阻塞式transport

    协议(Protocol)

    该层主要进行数据序列化和反序列化其中包含JSON、XML、文本、压缩格式

    • TBinaryProtocol – 二进制格式.
    • TCompactProtocol – 压缩格式
    • TJSONProtocol – JSON格式
    • TSimpleJSONProtocol –提供JSON只写协议, 生成的文件很容易通过脚本语言解析。
    • TDebugProtocol – 使用易懂的可读的文本格式,以便于debug
    • TCompactProtocol -实现THRIFT-110的协议

    进程(Processor)

    该层封装了从inputstream读和outputstream写的功能。该层只有一个方法TProcessor.process(TProtocol in, TProtocol out)。它是thrift编译器自动生成的。其参数in是用于从网络读取数据,out是用于向网络写数据。

    服务(Server)

    Server将以上组件混合创建transport、input和output的protocol、processor、连接并接受消息

    • TSimpleServer – 简单的单线程服务模型,常用于测试
    • TThreadPoolServer – 多线程服务模型,使用标准的阻塞式IO。
    • TNonblockingServer – 多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式)
  • 相关阅读:
    (C#)TreeView控件综合实例
    C#语言命名规则
    C#基础全接触
    (C#)GDI+简单绘图画矩形
    (C#)GDI+简单绘图画曲线
    C#拆箱与装箱之代码优化
    (C#)GDI+绘图之鼠标移动画图
    近期学习计划
    MS_SQL_杂记(一)
    别在迷恋正则表达式解析html了,好吗?
  • 原文地址:https://www.cnblogs.com/resentment/p/7183756.html
Copyright © 2011-2022 走看看