一、介绍
- RPC(Remote Procedure Call)远程过程调用。RPC技术简单说就是为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明。
- Thrift:
- 是一个轻量级、跨语言的RPC框架,主要用于各个服务之间的RPC通信。Thrift支持多种编程语言,C++、Java、Python、Ruby、Node.js、Golang等。
- 使用场景:分布式系统,不同服务部署在不同的机器节点上,之间需要通过网络通信,如订单服务调用会员服务。
- Thrift的架构:
- 从下至上
- I/O层:socket
- TTtransport:传输层TCP/IP,protobuf、json
- TProtocal:协议层
- IDL
- code
- 从下至上
- Thrift特性
- 开发速度快
- 接口维护简单
- 学习成本低
- 多语言/跨语言支持
- 穩定/廣汎使用
- IDL語法:
- 通用的接口描述语言。Thrift是一个典型的C/S架构,客户端和服务端可以使用不同的语言开发,一定要有一种中间语言来关联客户端和服务端的语言。thrift采用IDL来定义通用的接口,然后通过thrift提供的编译器,可以将服务接口编译成不同语言编写的代码,通过这个方式来实现跨语言的功能。
- IDL文件示例
- thrift编译器的安装:
- IDL文件编译:
- 生成java:thrift --gen java xx.thrift
- 生成python:thrift --gen py xx.thrift
- 示例:D:\Downloads\aaaworkspache\thrift-0.16.0.exe --gen py xx/xx.thrift
- 可以把thrift配置到系统环境变量
二、Python安装thrift
pip3 install thrift
三、python调用Java
from