grpc 学习

一 概述

gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统

1 特性

(1) 基于http2.0

HTTP/2 提供了连接多路复用、双向流、服务器推送、请求优先级、首部压缩等机制。可以节省带宽、降低TCP链接次数、节省CPU,帮助移动设备延长电池寿命等。gRPC 的协议设计上使用了HTTP2 现有的语义,请求和响应的数据使用HTTP Body 发送,其他的控制信息则用Header 表示。

(2) IDL使用protobuf

gRPC使用ProtoBuf来定义服务,ProtoBuf是由Google开发的一种数据序列化协议(类似于XML、JSON、hessian)。ProtoBuf能够将数据进行序列化,并广泛应用在数据存储、通信协议等方面。压缩和传输效率高,语法简单,表达力强。

(3) 多语言支持

(C, C++, Python, PHP, Nodejs, C#, Objective-C、Golang、Java)

2 缺点

(1) GRPC尚未提供连接池,需要自行实现
(2) 尚未提供“服务发现”、“负载均衡”机制

3 rpc框架对比

在这里插入图片描述
在这里插入图片描述

4 grpc坑

http2只允许单个链接传输10亿流数据。原因在于:
htt2使用31位整形标示流,服务端使用奇数,客户端使用偶数,所以总共10亿可用。

二 grpc 使用

1 编译准备库下载【Linux】

$ [sudo] apt-get install build-essential autoconf libtool pkg-config
$ [sudo] apt-get install libgflags-dev libgtest-dev
$ [sudo] apt-get install clang libc+±dev

2 grpc 下载

$ git clone -b https://github.com/grpc/grpc
$ cd grpc
$ git submodule update --init

3 grpc编译

export prefix=/home/xhw/share/arm/linux/grpc
make
make install

protobuf 编译
./configure prefix=/home/xhw/share/arm/linux/grpc
make
make install

arm 编译配置:【参考】
在这里插入图片描述

4 grpc 应用

grpc 官方文档
http://doc.oschina.net/grpc?t=57966

其他文档:【很详细可参考】
https://blog.csdn.net/GG_SiMiDa/article/details/81514561

三 grpc 线程模型分析

参考文档:
https://blog.csdn.net/jek123456/article/details/80451500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值