GRpc-Go使用笔记

linux下配置GRpc-golang

1、git中下载protobuf包

2、解压(/usr/local/protobuf)

unzip protobuf-cpp-3.0.0-alpha-3.zip

3、进入解压后的目录

cd protobuf/

4、编译安装

./configure

make && sudo make install

5、获取grpc-golang插件,进入go安装目录下的bin目录,运行以下命令

go get -u github.com/golang/protobuf/protoc-gen-go #golang 插件

运行后检查protoc-gen-go可执行文件的位置,bin目录下

6、从grpc包中找出protoc可执行文件,找linux64位的版本,拷贝到/usr/local/bin下

7、生成golang的代理类文件(需要protoc 和 protoc-gen-go 两个可执行文件),执行以下命令的任意一条:

protoc --go_out=gen-go taochees.proto --grpc_out=gen-go --plugin=protoc-gen-grpc=protoc-gen-go

或者

protoc --go_out=plugins=grpc:./gen-go taochees.proto

./gen-go是生成的代理类文件的保存路径

taochees.proto 是proto定义文件

8、文件生成成功后是:taochees.pb.go

直接拷贝到go的项目中(或go/src/taochees/taochees.pb.go)即可使用

9、C#生成的类库中repeated和map类型的字段,生成出来的属性只有get方法,没有set方法,因此使用时无法将其他对象赋值给此类属性,只能通过该属性的Add或Remove方法新增或移除值

10、go项目编译中,有可能由于版本不一致导致编译不过去,根据错误信息更新相应的package即可,此次调试中:

需从google上下载最新的golang包(go1.7.3.linux-amd64.tar.gz)( tar -xzvf go1.7.3.linux-amd64.tar.gz),

单独下载最新的net、http2、google.golang.org、golang.org、vendor包下更新golang.org

时间: 2024-10-25 00:44:19

GRpc-Go使用笔记的相关文章

gRPC的通讯过程

在 HTTP2 协议正式开始工作前, 如果已经知道服务器是 HTTP2 的服务器, 通讯流程如下: 客户端必须首先发送一个连接序言,其逻辑结构: PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n // 纯字符串表示,翻译成字节数为24个字节 SETTINGS帧 // 其负载可能为空 发送完毕序言之后,客户端可以不用等待来自服务器端响应,马上发送HTTP/2其它帧 服务器端接收到客户端的连接序言之后,需要发送一个SETTINGS帧作为连接序言 任一端接收到SETTINGS帧之后,都

gRPC

gRPC的特征: 基于 HTTP/2, 继而 提供了连接多路复用.Body 和 Header 压缩等机制.可以节省带宽.降低TCP链接次数.节省CPU使用和延长电池寿命等. 支持主流开发语言(C, C++, Python, PHP, Ruby, NodeJS, C#, Objective-C.Golang.Java) IDL (Interface Definition Language) 层使用了 Protocol Buffers, 非常适合团队的接口设计 gRPC 协议 http://dong

Go微服务 grpc的简单使用

作者:薇文文链接:https://www.jianshu.com/p/20ed82218163来源:简书 准备工作 先安装Protobuf 编译器 protoc,下载地址:https://github.com/google/protobuf/releases 我的是windows,将压缩包bin目录下的exe放到环境PATH目录中即可. 然后获取插件支持库 // gRPC运行时接口编解码支持库 go get -u github.com/golang/protobuf/proto // 从 Pro

23.创建grpc网关的基本设置和运行方法

首先创建grpc服务原来是micro.NewService还支持http等其他访问方式,但是grpc.NewService这种方法只支持grpc访问,所以需要创建网关让其支持http访问 package main import ( "github.com/micro/go-micro" "github.com/micro/go-micro/registry" "github.com/micro/go-micro/registry/etcd" &q

【安全牛学习笔记】

弱点扫描 ╋━━━━━━━━━━━━━━━━━━━━╋ ┃发现弱点                                ┃ ┃发现漏洞                                ┃ ┃  基于端口五福扫描结果版本信息(速度慢)┃ ┃  搜索已公开的漏洞数据库(数量大)      ┃ ┃  使用弱点扫描器实现漏洞管理            ┃ ╋━━━━━━━━━━━━━━━━━━━━╋ [email protected]:~# searchsploit Usage:

51CTO持续更新《通哥的运维笔记》

<通哥的运维笔记>将持续在51CTO网站更新,希望大家多多关注.互相学习,后期,我将会退出<通哥的运维笔记>系列视频教程,希望带给大家最大的收获,帮助大家更好的学习.进步.<通哥的运维笔记>主要从linux系统管理.虚拟化.cloudstack云平台以及网络管理之CCNA.CCNP.CCIE,等等方面深入讲解.

WPF笔记整理 - Bitmap和BitmapImage

项目中有图片处理的逻辑,因此要用到Bitmap.而WPF加载的一般都是BitmapImage.这里就需要将BitmapImage转成Bitmap 1. 图片的路径要用这样的,假设图片在project下的Images目录,文件名XXImage.png. pack://application:,,,/xxx;component/Images/XXImage.png 2. 代码: Bitmap bmp = null; var image = new BitmapImage(new Uri(this.X

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表. 发布这些文档最快速有效的方法就是发送邮件. python中email模块使得处理邮件变得比较简单 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 本段摘录于    http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 1.smtplib模块 smtplib.SMTP([host[, p