官方网站


http://www.grpc.io/

http://www.grpc.io/docs/quickstart/go.html

grpc安装


• go安装

目前grpc需要go 1.5以上版本支持。go安装可以参考:http://www.cnblogs.com/heartchord/p/5127503.html

• protocol buffer安装

protocol buffer和go插件安装可以参考:http://www.cnblogs.com/heartchord/p/5337863.html

• grpc安装

go get google.golang.org/grpc

• 官方例子测试

grpc包下自带测试例子,路径为google.golang.org/grpc/examples,我们使用例子下的helloworld工程进行测试。

▶ 编译server和client:

go install google.golang.org\grpc\examples\helloworld\greeter_server
go install google.golang.org\grpc\examples\helloworld\greeter_client

▶ 开启两个控制台分别运行greeter_server.exe和greeter_client.exe:

helloworld工程分析


• .proto和.pb.go文件

使用过protobuf就会知道,无论什么工程都需要一个.proto文件来定义数据的结构,该文件经过protoc.exe输出即可得到对应语言的源代码文件,例如c++得到的就是xxxx.pb.h和xxxx.pb.cc文件。而对于golang,则需要上述的插件支持,对应得到的是xxxx.pb.go文件。

官方文档:

https://developers.google.com/protocol-buffers/docs/proto3

https://developers.google.com/protocol-buffers/docs/gotutorial

▶ proto文件中HelloRequest和HelloReply消息将被转换为go语言结构体,并自动添加了一些成员函数。

▶ proto文件中Greeter服务将自动生成GreeterClient和GreeterServer接口,其中GreeterClient将拥有一个内部类型greeterClient,greeterClient定义了SayHello的具体行为;而GreeterServer中的SayHello需要自行定义。

▶ greeterClient定义的SayHello具体行为核心一点为调用服务端的SayHello函数:

▶ 服务端需要定义SayHello的具体行为:

• pb.go文件生成命令

// cd $GOPATH/src/google.golang.org/grpc/examples/helloworld
protoc -I helloworld/ helloworld/helloworld.proto --go_out=plugins=grpc:helloworld

[golang grpc] 框架介绍的更多相关文章

  1. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

    golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...

  2. 微服务系列(二)GRPC的介绍与安装

    微服务系列(二)GRPC的介绍与安装 1.GPRC简介 GRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架.GRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多 ...

  3. 前端从😳 到🚪 gRPC 框架

    RPC 是什么? RPC 英文全称是 Remote Procedure Call 既远程过程调用,维基百科中给的定义是一个计算机调用了一个函数,但这个函数并不在这台计算机上,这种远程调用方式程序员无需 ...

  4. Golang 微框架 Gin 简介

    框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了.成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应 ...

  5. 远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比

    远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo.SpringClound对比 远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务. 分布式RPC需要 ...

  6. golang gRPC初探

    gRPC使用protocol buffers作为Interface Definition Language (IDL). gRPC的底层信息交互格式也使用的是protocol buffers. 默认情 ...

  7. golang(gin框架),基于RESTFUL的跨语言远程通信尝试

    golang(gin框架),基于RESTFUL的跨语言远程通信尝试 背景: 在今年的项目实训过程中,遇到了这样的问题: 企业老师讲课实用的技术栈是Java springboot. 实训实际给我们讲课以 ...

  8. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

    [连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1 ...

  9. YARN基本框架介绍

    YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客<YARN与MRv1的对比>中介绍了YARN对Hadoop 1.0的完善.本 ...

随机推荐

  1. pcduino nfs挂在光盘

    1.首先在开发板上安装nfs-common 2.在pc端安装nfs-server 3.配置nfs vim /etc/exports 添加:/home/nfsroot *(rw,sync,no_root ...

  2. windows平台的游戏运行库

    每一个都在PC上玩过游戏的人,都知道要安装一些必备的游戏运行库,游戏才能运行,这里指的PC是特指Windows操作系统平台.一般来说最常见的运行库是DirectX.Microsoft Visual C ...

  3. python2.0_s12_day9_协程&多线程和cpu,磁盘io之间的关系

    事件驱动和异步io有什么直接关系. 当我们访问一个网页,不考虑网络问题.我们人类不觉得网页慢. 但是实际中对计算机来说还是慢.那慢在哪里.io io操作是整个网络操作中最慢的.比如你打开网页要是有2秒 ...

  4. Python 入门(二)Unicode字符串

    Unicode字符串 字符串还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节 (byte),所以,一 ...

  5. HTML节点树

    在 HTML 中,所有标签定义的内容都是节点: 整个文档是一个文档节点 每个HTML元素是元素节点 HTML元素内的文本是文本节点 每个HTML属性是属性节点 注释是注释节点 这些节点构成了一个 HT ...

  6. 使用Node.js完成路由

    首先先看一下文件的结构: 我想通过改变不同的路由进不同的页面, 先看这几个HTML页面: 404: <!DOCTYPE html> <html lang="en" ...

  7. Swift 高级运算符

    本文转载至 http://my.oschina.net/sunqichao/blog?disp=2&catalog=0&sort=time&p=2 除了基本操作符中所讲的运算符 ...

  8. MQTT的学习研究(十三) IBM MQTTV3 简单发布订阅实例

    使用IBM MQTTv3实现相关的发布订阅功能 MQTTv3的发布消息的实现: package com.etrip.mqttv3; import com.ibm.micro.client.mqttv3 ...

  9. Android UsageStats:应用根据启动次数、启动时间、应用名称排序

    Android 7.1.1 developers/samples/android/system/AppUsageStatistics/Application/src/main/java/com/exa ...

  10. SMGP3.0协议的概念知识

    该项目主页在https://code.google.com/archive/p/smgp/,可以使用VPN进去看看,该项目是开源的,根据SMGP3.0协议写的API,我们要用的话直接调用就好了,这里主 ...