gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 本文通过一个简单的 Hello World 例子来向您介绍 gRPC 。
gRPC 是什么?
gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。
在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得我们能够更容易地创建分布式应用和服务。
gRPC 客户端和服务端可以在多种环境中运行和交互,并且可以用任何 gRPC 支持的语言来编写。
gRPC 支持 C++ Java Python Go Ruby C# Node.js PHP Dart 等语言
gRPC 默认使用 protocol buffers,这是 Google 开源的一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。
安装 Google Protocol Buffer
方法一(建议使用)
1. 安装 gRPC
python -m pip install grpcio
# 或者
sudo python -m pip install grpcio
# 在 El Capitan OSX 系统下可能会看到以下报错
$ OSError: [Errno 1] Operation not permitted: '/tmp/pip-qwTLbI-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
# 可以使用以下命令
python -m pip install grpcio --ignore-installed
2. 安装 gRPC tools
Python gPRC tools 包含 protocol buffer 编译器和用于从 .proto
文件生成服务端和客户端代码的插件
python -m pip install grpcio-tools
方法二:
在 github 页面protobuf Buffers可以下载二进制源码,下载后执行以下命令安装:
tar -zxvf protobuf-all-3.5.1.tar
cd protobuf-all-3.5.1
./configure
make
make install
>> protoc --version
libprotoc 3.5.1 # 安装成功
因为是要使用 Protobuf + Python 测试,所以还要安装 python运行环境。protobuf Buffe