zoukankan      html  css  js  c++  java
  • thrift-TProtocol

    thrift中protocol主要负责的是将message写入transport的过程。这一部分并不包含java的POJO和各个协议的转换,而只是提供写入transport的接口。具体的调用是放在生成的service类中的。

    TJSONProtocol

    以json格式读写数据

    TSimpleJSONProtocol

    json格式的一个简单实现,但是没有提供读的功能

    TBinaryProtocol

    以二进制格式进行输入读取

    TCompactProtocol

    这个格式会对数据进行压缩,它会沿用构造函数传入的protocol部分输出/读取格式,但会对数据进行压缩,如整数会被转换成zigzap的表示形式、将布尔型的值压缩在类型的msb

    TProtocolDecorator

    纯装饰器protocol,其实现TMultiplexedProtocol是用于进行消息多路复用时使用的

         TSocket transport = new TSocket("localhost", 9090);
         transport.open();
    
         TBinaryProtocol protocol = new TBinaryProtocol(transport);
    
         TMultiplexedProtocol mp = new TMultiplexedProtocol(protocol, "Calculator");
         Calculator.Client service = new Calculator.Client(mp);
    
         TMultiplexedProtocol mp2 = new TMultiplexedProtocol(protocol, "WeatherReport");
         WeatherReport.Client service2 = new WeatherReport.Client(mp2);
    
         System.out.println(service.add(2,2));
         System.out.println(service2.getTemperature());
    

    其是通过在message的name上加上构造函数的第二个入参MessageName来实现的。在服务端需要使用TMultiplexedProcessor来进行消息接受

  • 相关阅读:
    Java 8 ThreadLocal 源码解析
    RabbitMQ 消息中间件
    MySQL 索引与查询优化
    MySQL EXPLAIN 命令: 查看查询执行计划
    迎来送往,开启新篇章
    mockito的用法
    推荐一个计算机的科普视频
    Golang查缺补漏(一)
    2019定个小目标
    golang 中的指针
  • 原文地址:https://www.cnblogs.com/resentment/p/7350895.html
Copyright © 2011-2022 走看看