网站首页 > 博客文章 正文
一、什么是gRPC
1.1 gRPC介绍
gRPC是由Google公司开源的一款高性能的远程过程调用(RPC)框架,可以在任何环境下运行。该框架提供了负载均衡,跟踪,智能监控,身份验证等功能,可以实现系统间的高效连接。另外,在分布式系统中,gRPC框架也有有广泛应用,实现移动社会,浏览器等和服务器的连接。
1.2 gRPC官方网站
gRPC官方网站:https://grpc.io/。
1.3 gRPC源码
gRPC的官方源码库存放于github网站,可以公开访问。gRPC源码库主页链接如下:https://github.com/grpc/grpc
gRPC开源库支持诸如:C++,C#,Dart,Go,Java,Node,Objective-C,PHP,Python,Ruby,WebJS等多种语言,开发者可以自行在gRPC的github主页库选择查看对应语言的实现。
1.4 gRPC调用执行过程
因为gRPC支持多种语言的实现,因此gRPC支持客户端与服务器在多种语言环境中部署运行和互相调用。多语言环境交互示例如下图所示:
gRPC中默认采用的数据格式化方式是protocol buffers。关于protocol buffers相关的知识和联系,在前面的课程内容中已经有涉及,此处不再赘述。
二、grpc-go介绍
2.1 grpc-go是什么
grpc-go库是gRPC库的Golang语言实现版本。可以通过github主页访问grpc-go库的源码并下载。grpc-go主页的Github地址如下:https://github.com/grpc/grpc-go
2.2 grpc-go安装
2.2.1 go get命令安装
在网络环境通畅的情况下,可以使用go get命令安装grpc-go库:
go get -u http://google.golang.org/grpc
需要注意,很多开发者在使用上述的命令进行安装grpc-go库时,往往会遇到网络环境的问题导致下载失败,链接超时报错。经常遇到的错误是:
package http://google.golang.org/grpc: unrecognized import path "http://google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
如果遇到类似上文中的timeout的链接服务器超时的错误,说明是网络环境问题,此时可以通过第二种方案进行安装。
2.2.2 下载方式安装
可以使用git工具中的git clone命令,将代码从github上下载到本地。clone命令:
git clone https://github.com/grpc/grpc-go.git $GOPATH/src/http://google.golang.org/grpc
上述命令后半部分$GOPATH/src/http://google.golang.org/grpc是指定将grpc-go代码库下载到特定目录。
2.2.3 依赖配置
如果采用2.2.2中的clone方式下载安装,因为grpc-go库中调用了其他外部库内容,因此,需要额外准备相关的代码库环境。需要准备的库主要是http://golang.org包下的一些库。http://golang.org包下的库也可以从github上下载,然后放到对应的http://golang.org目录下。
2.3.4 grpc-go案例
刚刚搭建完grpc-go库环境后,还暂时不会写grpc的程序。可以通过官方提供的案例进行grpc的学习。在下载的grpc-go库的根目录中,存在有examples目录,存放了官方提供的演示案例。开发者可以通过开发工具进行学习和运行调试。
2.3.5 案例演示
通过查看examples目录下的helloworld项目,并分别依次执行greeter_server中的main.go程序和greeter_client中的main.go程序。可以查看到运行结果。项目目录和运行效果如下所示:
转自:知乎Davie
- 上一篇: Python——gRPC详解及实战避坑方案(上)
- 下一篇: 通过抓包来认识gRpc(抓包后如何分析)
猜你喜欢
- 2024-10-16 Spring Boot集成grpc快速入门demo
- 2024-10-16 如何在 Go 中使用 gRPC?(golang grpc etcd)
- 2024-10-16 gRPC 1.34.0 发布,高性能 RPC 框架
- 2024-10-16 gRPC入坑记(grpc教程 go)
- 2024-10-16 凌鲨(linksaas)的客户端架构(凌肖 鲨鱼)
- 2024-10-16 Python gRPC 入门(grpc python asyncio)
- 2024-10-16 纯干货:微服务开发手册之GRPC(微服务开发入门)
- 2024-10-16 golang中gRPC与gRPC-Gateway的结合使用
- 2024-10-16 gRPC学习记录(一) 概念性知识(grpc特点)
- 2024-10-16 GRPC-C++源码分析(六)--Server-Register
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)