Thrift Oneway是什么?
网上很多文章,都有各种涉及使用 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是什么?相关推荐
- thrift oneway的问题
今天同事试验oneway的时候,发现client发送的消息数目和server接收的不一致.自己也做了下试验.发现也是不一致. 数据结构定义如下:book.thrift namespace cpp co ...
- Thrift的接口定义语言IDL
Thrift的IDL可以使用下面的语法来定义描述接口. 1 基本类型 bool:布尔值,true 或 false byte:8 位有符号整数 i16:16 位有符号整数 i32:32 位有符号整数 i ...
- Thrift解读(五)——server端RPC接收与返回值的回送
Thrift框架主要分为四层:Service,Protocol,Transport,Server.前述介绍的TNonBlockingServer就是一种Server,除此之外,还有很多别的Server ...
- 对Thrift的一点点理解
对Thrift的一点点理解 这是一篇学习Thrift的笔记,包含了这样几点内容: 简单介绍Thrift 怎样使用Thrift Thrift整体架构 Thrift中的知识点 struct可以设置默认值 ...
- java服务端开发 php_PHP使用thrift做服务端开发
php中文网最新课程 每日17点准时技术干货分享 php使用thrift做服务端开发 thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更小.效率更高,对于高并发.数据量大和多语言 ...
- Apache Thrift使用简介
Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.和其它RPC框架相比,它主要具有如下连个特点: 高性能. 它采用的是二进制序列化,并且用的是长 ...
- thrift数据类型
2019独角兽企业重金招聘Python工程师标准>>> 1.Types Thrift类型系统包括预定义基本类型,用户自定义结构体,容器类型,异常和服务定义 (1) 基本类型 bool ...
- python thrift demo
简介 Thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++, Java, Python, PHP, Ruby, Erlang, Perl, Has ...
- Thrift介绍以及Java中使用Thrift实现RPC示例
场景 Thrift Thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++, Java, Python,PHP, Ruby, Erlang,Perl ...
- 使用Thrift RPC编写程序
http://dongxicheng.org/search-engine/thrift-rpc/ 1. 概述 本文以C++语言为例介绍了thrift RPC的使用方法,包括对象序列化和反序列化,数据传 ...
最新文章
- Linux虚拟内存和物理内存精华【美】
- Android 计算器
- 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
- nginx 报错 99: Cannot assign requested address
- Oracle-洛总脚本--查询相关慢SQL
- 关于Nginx参数路径问题的问题
- asp.net treeView绑定
- gezabo变黑闪退,报错[gazebo_gui-2] process has died
- java 数据结构 数据库_数据库索引背后的数据结构
- .NET Remoting Basic(4)-客户端调用方式
- 兄弟7360/7460其它设备两个USB Device上、Brother BHL2-Maintenance有个问号,扫描仪无法识别
- 【积累】非常全面的开源数据集
- bigemap如何添加第三方地图
- 常见概率模型在市场中的应用
- 【hbase】解决海量图片存储
- netty(7)--UDP实战
- w ndows7怎么设置桌面保护,Windows7屏幕保护功能失效了怎么办?
- LDO选型参考(原理、参数)
- Mysql 1607错误
- matplotlib绘制四个子图
热门文章
- leetcode33. 搜索旋转排序数组
- 类似vmlogin浏览器的有哪些?vmlogin,AdsPower,候鸟浏览器等防关联浏览器中同类型软件最强是哪一个?防关联指纹浏览器哪个好?
- 涂抹果酱(状压dp)
- 2021年中国保险行业现状:全年新增保单件数489亿件,保险金额为12146万亿元[图]
- 解决安装mysql“staring the server“问题
- 机器学习基础随笔(3)
- 在javascript中如何实现珠峰海拔8848米,现在有足够大的纸,厚度是0.01米,折多少次高度可以超过珠穆朗玛峰
- win8计算机管理员权限删除文件,如何解决 win8系统管理员权限删除文件夹访问被拒绝(3页)-原创力文档...
- 塔防三国志服务器维护时间,塔防三国志中期玩家教程攻略详解
- pandas -- 基础操作(六):数据分组及透视表,df.groupby、pd.pivot,、pd.pivot_table、stack(堆叠)、 unstack(不堆叠)