thrift-TProtocol

本文介绍了Thrift中的多种Protocol,包括TJSONProtocol、TSimpleJSONProtocol、TBinaryProtocol、TCompactProtocol及TProtocolDecorator等,并提供了具体示例说明如何使用TMultiplexedProtocol实现消息多路复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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来进行消息接受

转载于:https://www.cnblogs.com/resentment/p/7350895.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值