Thrift基础知识汇总--------------(从官网资料中总结的)

thrift系列 - 快速入门 1.简介            Thrift是当前流行的RPC框架之一,它有强大的代码生成引擎,可以跨语言,轻松解决程序间的通信问题。 本文旨在帮助大家快速入门,若想深入原理,请参见thrift官网:http://thrift.apache.org/。(大家都很忙,少说废话) 2.下载windows版的IDL compiler      访问地址:http://www.apac 阅读详情

一、简介

a)        Thrift是一个跨语言的,高效的序列化的传输框架,内置代码生成引擎,用来在不同的语言之间创建高效无缝的服务接口,支持的语言有:C++,JAVA,PYTHON,PHP,C#等。

二、入门

a)        去thrift官网下载thrift框架;

b)        如果在linux下使用,需要编译安装thrift;如果在window上使用,则直接在命令行中使用即可;

c)        编写一个thrift的idl文件;里面写好命名空间、数据类型和接口;

d)        在命令行下调用thrift –gen java –gen py test.thrift即可;无需考虑哪个做客户端,哪个做服务端;命令完成后,会在当前目录下,生成gen-java和gen-py文件;

e)        命令格式:thrift --gen <language> <Thrift filename>

三、基本类型:Base Types

a)        基本类型的的选择以简洁、清晰为目标,重点关注在所有编程语言中的关键类型;

b)        基本类型介绍:

                        i.             bool:布尔值,真和假;

                      ii.             byte:一个8位的有符号整数;

                     iii.             i16:一个16位的有符号整数;

                     iv.             i32:一个32位的有符号整数;

                      v.             i64:一个64位的有符号整数;

                     vi.             double:一个64位的浮点数;

                   vii.             string:使用utf-8编码的字符串;

c)        注意,基本类型中没有无符号整数,这是因为很多编程语言中都没有无符号数。

d)        特殊类型:

                        i.             binary:二进制序列;

e)        容器类型:

                        i.             list:有序列表;

                      ii.             set:无序列表,元素具有惟一性;

                     iii.             map:键值对;映射类型;

f)         list: An ordered list ofelements. Translates to an STL vector, Java ArrayList, native arrays inscripting languages, etc. set: An unordered set of unique elements.Translates to an STL set, Java HashSet, set in Python, etc. Note: PHP does notsupport sets, so it is treated similar to a List map: A map of strictlyunique keys to values. Translates to an STL map, Java HashMap, PHP associativearray, Python/Ruby dictionary, etc. While defaults are provided, the typemappings are not explicitly fixed. Custom code generator directives have beenadded to allow substitution of custom types in various destination languages.

g)        注意map的key,尽量用基本类型,不要用容器类型;

四、异常

a)        为了同本地语言的异常无缝集成,thrift异常,通常会继承于本地语言的合适的异常类,除此之外,在功能上等价于thrift的结构体;

五、服务接口:

a)        Thrift接口通常要用到thrift的类型,定义一个service在语义上等同于定义一个interface,或者一个抽象类,thrift编译器会自动帮你生成相应的客户端和服务端的存根;在服务端,你需要继承这个stub,实现自己的业务代码;

b)        一个service由一系列的方法组成,每个方法可能有参数和返回类型;

c)        方法的修饰符:

                        i.             async:异步请求,不等待结果即返回;

                      ii.             oneway:好像和上面一样啊

六、其它

a)        关于命名空间:

                        i.             namespace cpp tutorial

                      ii.             namespace d tutorial

                     iii.             namespace java tutorial

                     iv.             namespace php tutorial

                      v.             namespace perl tutorial

                     vi.             还支持*号

b)        关于Include

                        i.             支持C++文件的包含

                      ii.             include "shared.thrift",引入thrift文件

c)        关于注视

                        i.             支持c语言的单行和多行注释

                      ii.             支持#号的单行注视

d)        关于typedef

                        i.             类似于别名的效果

e)        支持const常量定义,支持enum枚举定义

f)         Struts、exception、方法异常参数和方法的形式参数前,记得有编号(一个整型标识)

g)        变量的定义

                        i.             可以有默认值,比如:  i32 num1=0

                      ii.             可以设置为“选择性的”,比如: optional string comment

【Python】Thrift rpc 接口测试 python thrift rpc 协议的接口自动化测试使用方案 阅读详情

相关推荐

Python3实践thrift协议小实验

首先需要thrift编译器,thrift-0.12.0.exe,APache官网可以下载,不过网络不好的话可以用百度云的文件: 链接:https://pan.baidu.com/s/1uF32l-zqP6VWFGy0zuGRhA 提取码:xba4 接下来,自己写个简单的thrift协议,保存为hello.thrift文件如下 /* thrift接口定义文件 say接口接收一个参数m...

幼儿园 1576

Thrift使用指南

1. 内容概要 本文档比较全面的介绍了thrift(关于thrift框架的介绍,参考我这篇文章:Thrift框架介绍 )语法,代码生成结构和应用经验。本文主要讲述的对象是thrift文件,并未涉及其client和server的编写方法(关于client和server的编写方法,可参考我这篇文章:使用Thrift RPC编写程序 )。 本文档大部分内容翻译自文章:...

有时间就有历史,有历史就有传奇。 456

Thrift编译 Ubuntu 16.04

一、Thrift简介 Apache Thrift软件框架(用于可扩展的跨语言服务开发)将软件堆栈与代码生成引擎结合在一起,可以构建C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,JavaScript,Node.js,Smalltalk,OCaml和Delphi等语言。 入门 下载Apache Thrift 首先,下载 Thrift的副本。 构...

Tosonw的博客 730

Linux基础课 第六章、thrift教程

Apache Thrift 是由 Facebook 开发的一种远程服务调用(RPC Remote Procedure Call)的框架。它最大的特点就是支持多语言,在各个服务之间的RPC通信领域应用非常广泛。本文详细介绍了Thrift,带领大家入门Thrift

pursuit的博客 38万+

Go thrift 使用

Thrift 是啥? Thrift是一套包含序列化功能和支持服务通信的RPC框架,主要包含三大部分:代码生成、序列化框架、RPC框架,大致相当于protoc + protobuffer + grpc,并且支持大量语言,保证常用功能在跨语言间功能一致,是一套全栈式的RPC解决方案。Thrift最初由FaceBook开发,之后由ASF管理。 Thrift 整体架构 请求响应模型 ### 安装 Thrift 的 Golang 库 go get git.apache.org/thrift.git/lib/go/t

王小明的专栏 1418

thrift学习资料

apache thift 学习资料

面试套路问题总结2

1

songkai558919的博客 876

微信抢红包神器自动抢软件

微信抢红包神器自动抢软件

weixin_44006731的博客 8080

分布式Thrift 面试题汇总及参考答案

在 Thrift 的 IDL(接口定义语言)中,可以通过合理使用optional关键字来避免不必要的字段传输。optional关键字用于标识字段是可选的,即该字段在传输过程中可以不存在。当一个结构体或消息中有一些字段在某些情况下可能不需要传输时,就可以将这些字段定义为optional。例如,在一个用户信息的结构体中,用户的地址信息可能在某些场景下不需要传输,如只需要获取用户的基本账号信息时。在上述代码中,address字段被定义为optional。

大模型大数据攻城狮的专栏 967

大模型量化技术全解析:从INT8到GPTQ/AWQ,降低部署成本实战指南

模型量化是一种通过降低神经网络权重和激活值的数据精度(如从FP16降至INT8/INT4),从而大幅减少模型内存占用和计算开销的核心模型压缩技术。其原理基于线性变换,将高精度浮点数映射到低精度整数表示,在硬件层面能利用专用低精度计算单元实现显著加速。这项技术的核心价值在于解决了大模型(如千亿参数LLM)部署时面临的高昂显存成本和推理延迟问题,使其能在消费级GPU和边缘设备上高效运行。当前,后训练量化(PTQ)因其无需重新训练的特性成为主流,衍生出GPTQ、AWQ、SmoothQuant等多种方法,广泛应用于

weixin_33804582的博客 629

深入解析EDID中Display Descriptor Block的配置技巧与实战应用

本文深入解析EDID中Display Descriptor Block的配置技巧与实战应用。通过剖析像素时钟、有效像素、消隐区与同步脉冲等核心参数,并结合1280x720@60Hz的实战配置案例,指导开发者如何正确为定制硬件或非标准显示器编写“身份证”,避免黑屏、分辨率异常等问题,确保显示设备完美点亮。

1a2s3d4f5g的博客 878

Thrift 面试题

问题 答案 socket socket是 应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,它把复杂的TCP/IP协议族隐藏在Socket接口后面 服务端:socket() 创建socket描述符;bind()绑定实际地址;listen() 监听; accept 建立链接; 客户端:socket() 创建socket描述符;connect()连...

爱上在路上 3494

为什么需要知识图谱?什么是知识图谱?——KG的前世今生

我的知乎专栏,对知识图谱感兴趣的朋友可以关注。标题的命名顺序可能让有的读者不太习惯。通常在介绍一个陌生事物的应用前,我们先给出其定义。之所以换个顺序,是为了不让读者一开始就接触比较冰冷生硬的概念刻板描述(后面我尽量用更具体、准确的例子来表达),另一方面也是为了通过现实生活中的例子自然的引入知识图谱的概念。希望通过这种方式加深读者的印象和理解。为了减轻读者理解的负担,我尽可能地避免引入过多的概念和技术

SimmerChan的专栏 8万+

Thrift实例

要学习Thrift,它的官网上有资料介绍以及实例,可以到官网:http://thrift.apache.org/上查看。 在官网下载thrift的资源包,安装编译生成相应语言下的jar包,具体在windows下或者ubuntu下的安装参见: Thrift 学习笔记2——Windows环境下Thrift的安装、编译以及测试 Thrift 学习笔记1——Ubuntu环境下Thrift的安装、

Eliot 4391

matlab tolx,Nelder-Mead算法matlab

Nelder-Mead算法适合变量数不是很多的方程求极值.原理:Nelder-Mead法是利用多面体来逐步逼近最佳点x*.设函数变量为n维,则在n维空间里多面体有(n+1)个顶点.设x1,x2,...,xn+1为多面体的顶点,且满足:f(x1)<=f(x2)<=...<=f(xn+1)Nelder-Mead法试着将多面体中最差的顶点xn+1(也就是函数的最大点)以新的最佳点替代,...

weixin_36485298的博客 1480

RAG-Anything 实战:构建企业级多模态知识图谱问答系统

本文详细介绍了如何利用RAG-Anything构建企业级多模态知识图谱问答系统,解决跨模态文档处理的痛点。通过架构设计解析、部署实战指南和典型业务场景解决方案,帮助企业实现高效的知识管理和智能检索,提升决策效率。

weixin_29089057的博客 385

ubuntu下thrift的安装和运行

安装 1. 去官网下载 2. 根据系统以及所需语言安装所需软件   ubuntu c++语言参考以下命令安装: sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ lib

newand 1283

自制《大侠狂想曲》修改器:内存修改、加速与一键安装全攻略

游戏修改器是玩家优化游戏体验的常用工具,其核心原理是通过内存修改技术,在游戏进程运行时动态改写数值。常见实现路径是借助Cheat Engine扫描并追踪数据地址,再通过编程语言调用系统API完成读写。这种技术能有效解决重复刷资源带来的枯燥感,特别适用于单机RPG中想快速体验多剧情线却不想重刷资源的情形。本文以《大侠狂想曲》为例,完整拆解了从CE定位金钱与好感度内存地址,到编写C#脚本实现游戏加速、一键增加铜钱与NPC好感度,再到用Inno Setup打包生成一键安装器的全过程,并总结了数值弹回、剧情不触发、

weixin_30368981的博客 1462

thrift介绍与学习

1.trhfit基本介绍 Thrift是 一个跨平台,支持多语言的,通过定义IDL文件,自动生成RPC客户端与服务端通信代码的工具集合,也可以说是框架。 与之相类似的还有google的protocolbuffer. 2.thrift官网 Thrift是由facebook开

haier_jiang的专栏 3802

基于Python的上市公司年报PDF文本抓取与财务风险分析系统

随着大数据时代的到来,金融数据分析已成为投资决策和风险管理的重要工具。上市公司年报包含了丰富的财务信息和经营数据,通过对这些数据的提取和分析,可以评估公司的财务状况和潜在风险。本文将详细介绍如何使用Python构建一个完整的上市公司年报文本抓取与财务风险分析系统,涵盖PDF文本提取、数据清洗、财务指标计算和风险分析等全流程。

2201_76125261的博客 311

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

初识Thrift 及 Thrift示例

简介 Thrift是一个轻量级、语言无关的软件栈,它具有一套为RPC通信生成代码的机制 支持不同语言, 但是thrift文档资料比较少, 官网上也不是很详细http://thrift.apache.org/tutorial/ thrift拥有一套独立的网络栈, 大致分为: +-------------------------------------------+ | Server ...

comprel的博客 836

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MAC下thrift安装

按照thrift官网上的文档进行安装,步骤如下: 1. 安装boost ./bootstrap.sh —prefix=PATH_TO_BOOST sudo ./b2 threading=multi address-model=64 variant=release stage install 2. 安装libevent./configure —prefix=PATH_TO_LIBEVENT make

架构师专栏 8945

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Apache Thrift Golang 实践

Apache Thrift Golang 实践

Stefan的博客 605

centos7下安装thrift

目录1. 安装centos需要的扩展2. 安装boost,本地源码安装最安全3. 安装thrift ,不要用git包,直接到官网上下载tar包4. 安装完成 1. 安装centos需要的扩展 yum install -y automake libtool flex bison pkgconfig gcc-c++ libevent-devel zlib-devel python-devel ruby-devel openssl-devel yum install -y boost-devel # 非源码

liangwenhao1108的博客 687

Hbase-Thrift:Thrift安装及错误集锦

本文主要分为三部分:安装thrift、使用实例程序通过thrift访问hbase及错误集锦。第一部分:安装thrift 根据官网文档,thrift安装比较简单,但是在实际过程中仍然遇到不少问题,一般是依赖库的问题; 1.首先通过官网下载thrift 安装包,本人安装0.11.tar.gz 2.验证依赖:thrift至少需要两个依赖库,boost和libevent,因此需查看系统中是否有这两个库; ...

renzhewudi77的博客 2496

Thrift示例程序

Thrift是一个跨语言、高可用、高性能、轻量级的RPC框架

怀揣梦想,努力前行 1703
上一篇: Linux shell编程中的判断条件
下一篇: JVM调优参数汇总啊!!!!总结的很不错。
LiHangTong
博客等级 码龄16年 11粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值