整个过程就是:

1、客户端 发送 数据(以字节流的方式)

2、服务端接收,并解析。 根据 约定 知道要知道执行什么。然后把结果返回客户端 RPC就是 把 1、上述过程封装下,使其操作更加优化 2、使用一些大家都认可的协议 使其规范化 3、做成一些框架。直接或间接产生利益

刚才我们讲的“赚钱利器” 其中一个框架就是一款语言中立、平台中立、开源的远程过程调用(RPC)框架 gRpc 。

支持java、c++、golang、php多个语言版本。 我们只需要关心 golang版本 https://github.com/grpc/grpc-go

创建一个空项目,使用go module的方式 安装 go get -u google.golang.org/grpc 安装

  1. 创建一个环境变量 叫做GOPROXY (大小写敏感),值是https://goproxy.io (必须是https。不要自己篡改url)
  2.  
  3. 、重启你的终端(如果是windows cmd的话。Linux export GOPROXY=https://goproxy.io ) ,然后 再正常执行 go get xxxxx

安装不了的话请展开

  1. 目前阿里云也开放了代理服务
  2.  
  3. 戳这里http://mirrors.aliyun.com/goproxy/
  4.  
  5. 也就是说:设置成如下变量,就可以了
  6.  
  7. export GOPROXY=https://mirrors.aliyun.com/goproxy/

Protobuf

Google Protocol Buffer( 简称 Protobuf) 轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。

特点:性能高、传输快、维护方便,反正就是各种好,各种棒 一些第三方rpc库都会支持protobuf

github地址: https://github.com/protocolbuffers/protobuf

golang库所属地址 https://github.com/golang/protobuf

安装

本课时演示在windows里的安装 第一步来到这: 查看 https://github.com/protocolbuffers/protobuf/blob/master/src/README.md#c-installation---windows 继而安装https://github.com/protocolbuffers/protobuf/releases/latest (仅做学习使用 )

解压后放到 某个 你喜欢的文件夹中(不可以有中文,不能有空格,没有为什么)

譬如本课时放在了D:\systool\protoc39 然后把 D:\systool\protoc39\bin 加入环境变量 这是protobuf编译器,

将.proto文件,转译成protobuf的原生数据结构

protobuf相关文档 https://developers.google.com/protocol-buffers/docs/gotutorial

安装插件

go get github.com/golang/protobuf/protoc-gen-go

此时会在你的GOPATH 的bin目录下生成可执行文件

. protobuf的编译器插件protoc-gen-go 等下我们执行protoc 命令时 就会自动调用这个插件

创建中间文件

  1. syntax="proto3";
  2. package services;
  3. message ProdRequest {
  4. int32 prod_id =; //传入的商品ID
  5. }
  6. message ProdResponse{
  7. int32 prod_stock=;//商品库存
  8. }
  9.  
  10. 然后执行 protoc --go_out=../services/ Prod.proto

grpc安装的更多相关文章

  1. grpc 安装以及墙的解决方法

    1. 默认官方文档 go get -u google.golang.org/grpc 因墙的问题,大部分安装是无法完成的 2. 解决方法 a. grpc mkdir -p $GOAPTH/src/go ...

  2. gRPC安装的小问题

    INSTALL.md提到下述前提条件 #Pre-requisites ##Linux ```sh $ [sudo] apt-get install build-essential autoconf l ...

  3. linux下安装grpc插件 (c++和go语言)

    在debian/ubuntu系统下,需要做如下准备操作: $ [sudo] apt-get install build-essential autoconf libtool pkg-config 如果 ...

  4. gRPC helloworld service, RESTful JSON API gateway and swagger UI

    概述 本篇博文完整讲述了如果通过 protocol buffers 定义并启动一个 gRPC 服务,然后在 gRPC 服务上提供一个 RESTful JSON API 的反向代理 gateway,最后 ...

  5. google的grpc在golang中的使用

    GRPC是google开源的一个高性能.跨语言的RPC框架,基于HTTP2协议,基于protobuf 3.x,基于Netty 4.x. 前面写过一篇golang标准库的rpc包的用法,这篇文章接着讲一 ...

  6. 记python使用grpc

    using grpc in Python gRPC是基于http/2的RPC框架,使用ProtoBuf作为底层数据序列化.Nginx服务器2018年3月17日引入gRPC支持. gRPC 是用来实现跨 ...

  7. [golang grpc] 框架介绍

    官方网站 http://www.grpc.io/ http://www.grpc.io/docs/quickstart/go.html grpc安装 • go安装 目前grpc需要go 1.5以上版本 ...

  8. CentOS6.5 环境安装配置

    一.GO环境配置 1.运行命令进入/usr/local/src目录:cd /usr/local/src 2.下载安装包:运行wget --no-check-certificate https://st ...

  9. gRPC入坑记

    概要 由于gRPC主要是谷歌开发的,由于一些已知的原因,gRPC跑demo还是不那么顺利的.单独写这一篇,主要是gRPC安装过程中的坑太多了,记录下来让大家少走弯路. 主要的坑: 如果使用PHP.Py ...

随机推荐

  1. html--div里让图片水平居中

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. soj97 旅行

    题意:给你一棵n个点的树.m个操作,op 1:在点i上建立银行.op 2:询问从点x开始可以经过至少一个银行走到的点中编号第二大的点. n,m<=1e5. 标程: #include<bit ...

  3. CF1097E Egor and an RPG game

    最少反链划分数 = 最长链.实现:每次找出所有极大元作为一个反链. 任意长度小于k * (k + 1) / 2的排列都能被划分为不多于k个单调序列.且这是一个紧的上界. 然后这题就可以切了. 题意:给 ...

  4. 数论GCD——cf1055C

    被一道数论题卡了半天 网上的题解说只要匹配l或者r就行,想了下还真是.. 能让r1和r2对其就让他们对其,不能对其就讨论一下两种情况就可以了 #include <bits/stdc++.h> ...

  5. echarts高级

    常用,待续... ♣tooltip自动轮播 ♣ 实现数据自动轮播 原理:其实就是timeline,获取某几段(时间)的数据,然后隐藏timeline ♣ legend自动轮播 ♣ 左侧多字出省略号 f ...

  6. 7 Serialize and Deserialize Binary Tree 序列化及反序列化二叉树

    原题网址:http://www.lintcode.com/zh-cn/problem/serialize-and-deserialize-binary-tree/# 设计一个算法,并编写代码来序列化和 ...

  7. SPSS实例教程:多重线性回归,你用对了么

    SPSS实例教程:多重线性回归,你用对了么 在实际的医学研究中,一个生理指标或疾病指标往往受到多种因素的共同作用和影响,当研究的因变量为连续变量时,我们通常在统计分析过程中引入多重线性回归模型,来分析 ...

  8. JDK源码阅读--HashMap

    public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, ...

  9. PAT甲级——A1089 Insert or Merge

    According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...

  10. 在AlexNet中LRN 局部响应归一化的理

    在AlexNet中LRN 局部响应归一化的理 一.LRN技术介绍: Local Response Normalization(LRN)技术主要是深度学习训练时的一种提高准确度的技术方法.其中caffe ...