zoukankan      html  css  js  c++  java
  • GoLand gRPC框架1-环境安装

    • gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。
    • 在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。
    • gRPC 默认使用 protocol buffers,这是 Google 开源的一套成熟的结构数据序列化机制,它的作用与 XML、json 类似,但它是二进制格式,性能好、效率高(缺点:可读性差)。

    安装 protobuf

    1.下载地址:https://github.com/protocolbuffers/protobuf/releases

    根据自身电脑的操作系统,选择最新的版本下载

    2.解压后在bin目录找到protoc.exe,然后把它复制到GOBIN目录下

    把protoc.exe所在的目录配到环境变量里,这里直接把protoc.exe复制到GOBIN目录下,前提是环境变量已经配置了GOBIN环境变量。

    3.打开cmd,运行protoc --version

    成功打印当前版本信息证明安装成功了。

    安装相关包

    安装 golang 的proto工具包

    go get -u github.com/golang/protobuf/proto
    

    安装 goalng 的proto编译支持

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

    安装 gRPC 包

    go get -u google.golang.org/grpc
    

    创建并编译proto文件

    1.新建proto文件夹,在里面新建Prod.proto文件

    syntax = "proto3";// 协议为proto3
    
    package proto;
    
    // 定义发送请求信息
    message ProdRequest {
      // 定义发送的参数
      int32 prod_id = 1;//传入的商品ID
    }
    
    // 定义响应信息
    message ProdResponse {
      // 定义接收的参数
      int32 prod_stock = 1;//商品库存
    }
    
    
    // 定义服务
    service ProdService {
      rpc GetProdStock(ProdRequest) returns(ProdResponse);
    }
    

    2.编译proto文件

    cd进入Prod.proto所在目录,运行以下指令进行编译

    protoc --go_out=plugins=grpc:./ ./Prod.proto
    

    VSCode-proto3插件介绍

    使用VSCode插件,方便对编辑和编译proto文件。

    • 扩展程序中搜索 VSCode-proto3,然后点击安装。
    • 在设置中找到setting.json文件,添加vscode-proto3插件配置
       // vscode-proto3插件配置
        "protoc": {
            // protoc.exe所在目录
            "path": "E:\Go\bin\protoc.exe",
            // 保存时自动编译
            "compile_on_save": true,
            "options": [
                // go编译输出指令
                "--go_out=plugins=grpc:."
            ]
        }
    

    每次编辑完proto文件后,只需要保存,它就会自动帮助完成编译。而且代码有高亮显示,代码自动补全,代码格式化等功能。

  • 相关阅读:
    JavaScriptFunction对象(函数)的声明和作用域
    JavaScript常用对象的属性及方法(2)
    html+css>backgroundimg(背景图的设置)
    JavaScript知识点>运算规则与运算(逻辑、位)
    JavaScript知识点:分支结构(if、switch)+算法例题
    JavaScript常用对象的属性及方法(1)
    一些学习js的算法题目
    隐马尔科夫模型
    Eclipse插件开发小结
    二叉树排序和堆排序
  • 原文地址:https://www.cnblogs.com/remixnameless/p/14287909.html
Copyright © 2011-2022 走看看