Golang gRPC基础入门一: 介绍和安装

90design · · 1497 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back.

你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。

gRPC 简介:

gRPC 是一款高性能、开源的 RPC 框架,产自 Google,基于 ProtoBuf 序列化协议进行开发,支持多种语言(Golang、Python、Java等),本篇只介绍 Golang 的 gRPC 使用。因为 gRPC 对 HTTP/2 协议的支持使其在 Android、IOS 等客户端后端服务的开发领域具有良好的前景。gRPC 提供了一种简单的方法来定义服务,同时客户端可以充分利用 HTTP/2 stream 的特性,从而有助于节省带宽、降低 TCP 的连接次数、节省CPU的使用等。

安装:

    1. gRPC 的安装:

go get -u google.golang.org/grpc

此链接需要fq, 如果不清楚如何FQ, 可以直接下载第三方包然后安装,提供一个可以无需FQ就可以下载的地址:https://www.golangtc.com/download/package

  • 具体安装方式:

    将下载下来的第三方包,放在$GOPATH/src 下, 然后 go install   XXX.com/XX (包名)。可能需要其他第三方包,只要把需要的都go get 下来就好了

    2. protobuf的安装

因为 gRPC 是基于 protobuf 实现的接口序列化,所以也要安装 protobuf。

  1. 安装 protoc :Protoc下载地址,可以根据自己的系统下载相应的 protoc,windows 用户统一下载 win32 版本。
  2. 配置 protoc 到系统的环境变量中,执行如下命令查看是否安装成功: protoc 

    3. 安装 ProtoBuf 相关的 golang 依赖库

go get -u github.com/golang/protobuf/{protoc-gen-go,proto}

// 可以分步执行
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go

如果同样无法下载, 可以使用以上说的方式下载安装。 安装成功后,查看$GOPATH/bin 下是否有protoc-gen-go.exe (windows下)。

到此就算安装成功,下面可以马上就如测试阶段了。

总结:

    1. 问: 为什么有HTTP请求,为什么还要用rpc调用?

        首先http是超文本传输协议,

        rpc是远端过程调用,其调用协议通常包含传输协议和编码协议。使用的 http2 协议,也有如dubbo一类的自定义报文的tcp协议

        参考文章:

            https://www.zhihu.com/question/41609070?sort=created

     2.  HTTP服务和RPC服务的优胜劣汰?

        因为RPC效率更高,而HTTP服务开发迭代会更快,相对简易, 所以RPC多用于大型企业

 

 

 

 

 

 

 

 

 

RPC调用流程图

 

 

 

 


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:90design

查看原文:Golang gRPC基础入门一: 介绍和安装

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1497 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传