网上很多文章,都有各种涉及使用 oneway 的,基本是一个THRIFT IDL示例接口前面加 oneway。看完之后对

oneway的理解还是很模糊,于是看了下Thrift的代码,终于搞懂了 oneway 。

代码位置: org.apache.thrift.ProcessFunction#isOneway

 1 try {
 2             result = this.getResult(iface, args);
 3         } catch (TException var9) {
 4             LOGGER.error("Internal error processing " + this.getMethodName(), var9);
 5             TApplicationException x = new TApplicationException(6, "Internal error processing " + this.getMethodName());
 6             oprot.writeMessageBegin(new TMessage(this.getMethodName(), (byte)3, seqid));
 7             x.write(oprot);
 8             oprot.writeMessageEnd();
 9             oprot.getTransport().flush();
10             return;
11         }
12
13         if (!this.isOneway()) {
14             oprot.writeMessageBegin(new TMessage(this.getMethodName(), (byte)2, seqid));
15             result.write(oprot);
16             oprot.writeMessageEnd();
17             oprot.getTransport().flush();
18         }

原来开启了 oneway ,一次RPC调用服务端不会返回response 给客户端,也就相当于客户端是忽略结果的一次调用。

默认这个 oneway 是false 的,也就是默认都会返回结果,业务上不关心调用结果的接口可以设置为 oneway,可以稍微提升接口性能。

转载于:https://www.cnblogs.com/Joynic/p/10985729.html

Thrift Oneway是什么?相关推荐

  1. thrift oneway的问题

    今天同事试验oneway的时候,发现client发送的消息数目和server接收的不一致.自己也做了下试验.发现也是不一致. 数据结构定义如下:book.thrift namespace cpp co ...

  2. Thrift的接口定义语言IDL

    Thrift的IDL可以使用下面的语法来定义描述接口. 1 基本类型 bool:布尔值,true 或 false byte:8 位有符号整数 i16:16 位有符号整数 i32:32 位有符号整数 i ...

  3. Thrift解读(五)——server端RPC接收与返回值的回送

    Thrift框架主要分为四层:Service,Protocol,Transport,Server.前述介绍的TNonBlockingServer就是一种Server,除此之外,还有很多别的Server ...

  4. 对Thrift的一点点理解

    对Thrift的一点点理解 这是一篇学习Thrift的笔记,包含了这样几点内容: 简单介绍Thrift 怎样使用Thrift Thrift整体架构 Thrift中的知识点 struct可以设置默认值 ...

  5. java服务端开发 php_PHP使用thrift做服务端开发

    php中文网最新课程 每日17点准时技术干货分享 php使用thrift做服务端开发 thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更小.效率更高,对于高并发.数据量大和多语言 ...

  6. Apache Thrift使用简介

    Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.和其它RPC框架相比,它主要具有如下连个特点: 高性能. 它采用的是二进制序列化,并且用的是长 ...

  7. thrift数据类型

    2019独角兽企业重金招聘Python工程师标准>>> 1.Types Thrift类型系统包括预定义基本类型,用户自定义结构体,容器类型,异常和服务定义 (1) 基本类型 bool ...

  8. python thrift demo

    简介 Thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++, Java, Python, PHP, Ruby, Erlang, Perl, Has ...

  9. Thrift介绍以及Java中使用Thrift实现RPC示例

    场景 Thrift Thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++, Java, Python,PHP, Ruby, Erlang,Perl ...

  10. 使用Thrift RPC编写程序

    http://dongxicheng.org/search-engine/thrift-rpc/ 1. 概述 本文以C++语言为例介绍了thrift RPC的使用方法,包括对象序列化和反序列化,数据传 ...

最新文章

  1. Linux虚拟内存和物理内存精华【美】
  2. Android 计算器
  3. 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
  4. nginx 报错 99: Cannot assign requested address
  5. Oracle-洛总脚本--查询相关慢SQL
  6. 关于Nginx参数路径问题的问题
  7. asp.net treeView绑定
  8. gezabo变黑闪退,报错[gazebo_gui-2] process has died
  9. java 数据结构 数据库_数据库索引背后的数据结构
  10. .NET Remoting Basic(4)-客户端调用方式
  11. 兄弟7360/7460其它设备两个USB Device上、Brother BHL2-Maintenance有个问号,扫描仪无法识别
  12. 【积累】非常全面的开源数据集
  13. bigemap如何添加第三方地图
  14. 常见概率模型在市场中的应用
  15. 【hbase】解决海量图片存储
  16. netty(7)--UDP实战
  17. w ndows7怎么设置桌面保护,Windows7屏幕保护功能失效了怎么办?
  18. LDO选型参考(原理、参数)
  19. Mysql 1607错误
  20. matplotlib绘制四个子图

热门文章

  1. leetcode33. 搜索旋转排序数组
  2. 类似vmlogin浏览器的有哪些?vmlogin,AdsPower,候鸟浏览器等防关联浏览器中同类型软件最强是哪一个?防关联指纹浏览器哪个好?
  3. 涂抹果酱(状压dp)
  4. 2021年中国保险行业现状:全年新增保单件数489亿件,保险金额为12146万亿元[图]
  5. 解决安装mysql“staring the server“问题
  6. 机器学习基础随笔(3)
  7. 在javascript中如何实现珠峰海拔8848米,现在有足够大的纸,厚度是0.01米,折多少次高度可以超过珠穆朗玛峰
  8. win8计算机管理员权限删除文件,如何解决 win8系统管理员权限删除文件夹访问被拒绝(3页)-原创力文档...
  9. 塔防三国志服务器维护时间,塔防三国志中期玩家教程攻略详解
  10. pandas -- 基础操作(六):数据分组及透视表,df.groupby、pd.pivot,、pd.pivot_table、stack(堆叠)、 unstack(不堆叠)