文档章节

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

90design
 90design
发布于 2018/01/18 15:10
字数 656
阅读 881
收藏 0

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
粉丝 20
博文 55
码字总数 40485
作品 0
潍坊
程序员
私信 提问
Grpc介绍 — Go-Service To PHP-Client

笔者现在公司项目大部分是PHP进行开发,要完成整体微服务化必须要考虑PHP使用上的可行性,Grpc也是支持PHP作为client端发起Grpc请求,但是依赖的扩展等都相对复杂(毕竟不是亲儿子),那么本...

喵了_个咪
03/06
266
1
mac下grpc(golang server + php client)实践

目前微服务这么流行,RPC框架也是百花齐放,本文讲述一下mac下grpc的开发环境搭建,其中server端使用golang,客户端使用php。 服务端 golang grpc安装 这里列出了一个参考,由于grpc在githu...

陈晓风
2018/07/01
0
0
Grpc介绍 — ProToBuf基本使用

RPC(Remote Procedure Call)远程过程调用,关注笔者的同学应该知道之前笔者出过关于Thrift对应的问题,这次主要来说的是Google开源的Grpc,和Thrift有很大的区别Grpc是基于HTTP2.0并且依赖...

喵了_个咪
02/28
196
0
人人都能成为闪电网络节点:第6章安装lnd

决定安装lnd了,建议先烧柱香,拜拜中本聪,会减少些磨难和诡异。 C-lightning、LND和Éclair的关系和区别: 闪电网络驱动的基础技术区别在于编码语言。Éclair用的是Scala,LND用的是Go-Lo...

乔延宏
05/03
0
0
Grpc-Gateway - Grpc兼容HTTP协议文档自动生成网关

因为之前的测试结果让笔者对PHP使用GRPC很失望,如果使用HTTP的方式Guzzle还可以提供并发能力来降低接口消耗,Grpc只能阻塞,但是如果使用HTTP的话对于调用限制和GO调用GO来说不太友好,有没...

喵了_个咪
03/18
500
0

没有更多内容

加载失败,请刷新页面

加载更多

iOS Xcode升级包地址(感谢大神)

下载地址:DeviceSupport

_____1____
19分钟前
6
0
Qt编写自定义控件71-圆弧进度条

一、前言 现在web形式的图表框架非常流行,国产代表就是echart,本人用过几次,三个字屌爆了来形容,非常强大,而且易用性也非常棒,还是开源免费的,使用起来不要太爽,内置的各种图表和仪表...

飞扬青云
19分钟前
4
0
润乾报表与 ActiveReport JS 功能对比

简介 润乾报表是用于报表制作的大型企业级报表软件,核心特点在于开创性地提出了非线性报表数学模型,采用了革命性的多源关联分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表...

泡泡糖儿
31分钟前
5
0
【1015】LNMP架构二

【1015】LNMP架构二 三、PHP安装 PHP安装和LAMP安装PHP方法有差别,需要开启php-fpm服务 1、下载PHP7至/usr/local/src/ 切换目录:cd /usr/local/src 2、解压缩 tar -jxvf php-7.3.0.tar.gz...

飞翔的竹蜻蜓
今天
5
0
浅谈Visitor访问者模式

一、前言 什么叫访问,如果大家学过数据结构,对于这点就很清晰了,遍历就是访问的一般形式,单独读取一个元素进行相应的处理也叫作访问,读取到想要查看的内容+对其进行处理就叫作访问,那么...

青衣霓裳
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部