构建流
gRPC 利用 HTTP/2的双向通信特性实现了连续的消息交换,实现了双向流。
数据流是什么?
流数据有各种各样的场景用法。一种是,当事件发生时,有一种方法可以不断发出描述事件的消息。例如,当数据被添加到数据库中时,数据库希望将“数据添加”事件通知相关方。或者当股票价格发生变化时,证券交易所希望向订阅“价格变化”事件的所有服务公布新价格。
另一个是有一种以异步方式高效传输非常大的数据集的方法。例如,假设您有一个返回一百万条记录的查询,其中每条记录对调用者都有值。能够在每条记录以流的方式进入时检查它,比等到所有100万条记录都收到后再批量处理它们要有效得多。或者,想象你有一个电视控制台,想要摄入一部电影5分钟的时间来处理。通过流消费和处理5分钟的片段意味着消费者可以在电影进入时持续观看,而不必等到整部电影下载后才能观看。
环境准备
python 3.7
pip 最新版, 可以用下面的命令更新
python -m pip install --upgrade pip
安装 gRPC
python -m pip install grpcio
这个还需要安装一个 gRPC tools, Python 的 gRPC 工具包括协议缓冲编译器 protoc 和用于从 .proto服务定义。
python -m pip install grpcio-tools
为了学习,这个提供要给demo
git clone -b v1.33.1 https://github.com/grpc/grpc
# 国内可以访问这个
git clone git@gitee.com:chasays/grpc.git