thrift 安装及入门

简介: thrift 安装及入门

前言


程序开发的模式一般为前后端分离和微服务模式,前端(如nodejs)对数据处理后传递到后端,微服务模式下多个模块之间需要进行数据的交互。而数据交互有主要有两种方式,一种是通过 HTTP REST 的方式,还有一种就是 RPC 的方式,Thrift 就是属于 rpc 通信的一种方式。


  • REST 是在 HTTP 基础上建立的数据交互,数据一般采用 JSON 格式
  • Thrift 是在 Socket 基础上进行数据交互,数据传输方式灵活,可以通过二进制的方式传递,同时提供序列化和反序列化,也可以采用 JSON 格式


安装


本文环境为 Ubuntu20.04,其他操作系统可以查看官网:thrift.apache.org/


# 安装相关依赖
sudo apt-get install automake bison flex g++ git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
# 本文服务端为cpp,客户端为python,故需安装相应包
sudo apt install g++
sudo apt install python3
sudo apt install python-all python-all-dev python-all-dbg
# 下载thrift
wget https://dlcdn.apache.org/thrift/0.16.0/thrift-0.16.0.tar.gz
# 解压
tar -xf thrift-0.16.0.tar.gz
# 进入该目录执行,等待
cd thrift-0.16.0/
./configure
sudo make
sudo make install
# 测试是否安装成功
thrift -version
复制代码

入门


  • 编写测试接口,类似 cpp 的 struct,文件名为 test.thrift,定义了 User 以及两个方法:


namespace cpp match_service
struct User {
  1: i32 id,
  2: string name,
  3: i32 score
}
service Match {
  i32 add_user(1: User user, 2: string info),
  i32 remove_user(1: User user, 2: string info),
}
复制代码
  • 然后通过接口生成 cpp 代码:


# cpp 可以改为其他编程语言
thrift -r --gen cpp test.thrift
# 生成的代码都在 gen-cpp 目录下
复制代码
  • 修改,启动服务端


cd gen-cpp
# 修改文件名为main
mv Match_server.skeleton.cpp main.cpp
# 在main函数中添加一个输出用于测试
vim main.cpp
# 编译,连接,运行
g++ -c *.cpp
g++ *.o -o main -lthrift
./main
复制代码


image.png


  • 明天基于此服务端更新一个匹配系统的实战😎


报错解决


cpp 找不到动态链接库:


sudo vim /etc/ld.so.conf
# 在行末添加 /usr/local/lib
# 使修改生效
sudo /sbin/ldconfig
复制代码

python 找不到 thrift 模块:


sudo apt install python3-pip
sudo pip install thrift


目录
相关文章
|
JavaScript Java Linux
Go语言 thrift 入门指南--thrift IDL介绍
Thrift 是一个轻量级、跨语言的 RPC 框架,由 facebook 开发,2007年正式开源,2008 纳入 Apache 软件基金会开源项目。
1646 0
Go语言 thrift 入门指南--thrift IDL介绍
|
Java API 分布式数据库
HBase thrift/thrift2 使用指南
Thrift server简介 Thrift server是HBase中的一种服务,主要用于对多语言API的支持。基于Apache Thrift(多语言支持的通信框架)开发,目前有两种版本thrift和thrift2。
19928 0
|
分布式计算 数据挖掘 程序员
Thrift简介—续
Thrift简介—续
Thrift简介—续
|
存储 自然语言处理 负载均衡
Thrift简介
Thrift简介
序列化工具 - Thrift安装配置与使用
序列化工具 - Thrift安装配置与使用
序列化工具 - Thrift安装配置与使用
|
JSON 网络协议 Java
thrift 原理浅析
thrift 原理浅析
356 0
thrift 原理浅析
|
编译器 Apache
Thrift架构与使用方法
Thrift架构与使用方法
258 0
Thrift架构与使用方法
|
Java Apache 数据格式
Thrift简明教程
Thrift是个RPC框架,它的目标是为各种流行的开发语言提供便利的RPC调用机制,而不需要使用那些开销巨大的方式,比如SOAP。 Thrift使用语言中立的服务定义文件(IDL,接口描述语言),描述数据类型和服务接口。
2541 0
|
JSON Java Apache
thrift概述
Apache Thrift 是FaceBook实现的一种跨平台的远程服务调用(RPC)的框架。它采用接口描述语言(IDL)定义并创建服务,传输数据采用二进制格式,相对于XML和Json等常用数据传输方式体积更小。
953 0