gRPC是一个高性能、通用的开源 RPC 框架,其由 Google 主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。gRPC 提供了一种简单的方法来精确地定义服务和为 iOS、Android 和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的 TCP 链接次数、节省 CPU 使用、和电池寿命。

1.GRPC模式

简单模式

客户端发起一次请求,服务端响应一个请求

双向数据流模式

客户端和服务端都可以向对方发送数据流,这个时候双方的数据可以同时互相发送

2.nginx作为grpc反向代理原理

ssl

3.升级nginx

nginx -v

由于nginx 1.13.10版本之后才支持GRPC,如果nginx版本较低,请升级nginx 版本升级

4.部署go语言环境

GRPC支持很多语言,如C++、C#、GO、JAVA、Node.js、Python、Ruby、Web等。小菜在这里演示用的是GO语言。

进入Go 官方网站下载我们需要的Go 下载包,根据自己的操作系统选择不同的GO包。拷贝下载地址

cd /opt/download
wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz
tar -xvf go1.11.4.linux-amd64.tar.gz 
mv go /usr/local/
cd /usr/local/
/usr/local/go/bin/go version   #查看go版本
echo $PATH                     
vim /etc/profile

在文件末尾添加环境变量

export GOPATH=/opt/go
export PATH=$PATH:/usr/local/go/bin

   

source /etc/profile  #使配置文件生效
go version           #在任何地方输入,输出go版本说明go环境安装好了

5.安装GRPC框架

    

git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net
git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto
git clone https://github.com/golang/sys.git $GOPATH/src/golang.org/x/sys
cd $GOPATH/src/
go install google.golang.org/grpc

测试用例 cd /opt git clone https://github.com/grpc/grpc-go.git

nginx教程

nginx环境搭建(1) nginx基础知识(2) nginx的安装 卸载(3) nginx的基本参数使用(4) nginx分析默认配置(5) nginx 虚拟主机配置(6) nginx 日志(7) nginx 模块(8) nginx 访问控制(9) nginx 静态资源web服务(10) nginx 缓存(11) nginx 跨域访问(12) nginx 防盗链(13) nginx 正向,反向代理配置(14) nginx 代理缓存配置(15) nginx websocket(16) nginx fastcgi(17) nginx 搭建wordPress博客(18) nginx Fastcgi缓存配置(19) nginx uwsgi反向代理(20) nginx 负载均衡(21) [深] nginx 动静分离(22) [深] nginx rewrite规则(23) [深] nginx 平滑升级 添加模块 调试(24) [深] nginx secure_link_module模块(25) [深] nginx geoip_module模块(26) [深] nginx https(27) [深] nginx与lua的开发(28) [架] nginx常见问题(29) [架] nginx性能优化(30) [架] nginx 安全(31) [架] nginx 反向代理gRpc(32)