zoukankan      html  css  js  c++  java
  • golang 之 go-micro

    在安装之前首先需要对go-micro有一定的了解

    https://micro.mu/docs/cn/  go-micro中文文档

     

    https://juejin.im/post/5cebafe6f265da1bb80c0cc7  go-micro源码

     

    https://segmentfault.com/a/1190000007917576  prodoful语法

     micro

    执行下面代码会等一段时间,到在最后发现并不能安装完整,别着急,因为micro包有些是需要翻墙下载,用下面的方法一个个把缺失的安装好

    go get -u github.com/micro/micro
    

     protobuf

    可以直接使用brew install protobuf 写在,也可以去git  https://github.com/protocolbuffers/protobuf/releases下载最新的包下载然后编译安装即可。最后安装下面的即可。

    解压之后将bin文件夹加入环境变量,或者里面的protoc.exe路径加入环境变量,这个exe文件就是我们转换protobuf的工具。

    然后我们使用一些golang对于protobuf的工具,go get相应的库

    go get -u -v github.com/golang/protobuf/{proto,protoc-gen-go}
    go get -u -v github.com/micro/protoc-gen-micro
    

    consul

    go-micro默认使用consul,如果你不喜欢用consul,也可以自己下载etcd或者其他安装使用,后续会介绍如何安装etcd。

    直接使用命令安装或者去https://www.consul.io/downloads.html 

    brew install consul
    

     下载完之后加入环境变量,启动

    consul agent -dev
    

    安装grpc和genproto

    mkdir $GOPATH/src/google.golang.org
    cd $GOPATH/src/google.golang.org
    
    git clone https://github.com/grpc/grpc-go.git grpc
    git clone https://github.com/google/go-genproto.git genproto
    

    安装 golang的net,crypt,text库

    mkdir -p $GOPATH/src/golang.org/x
    cd $GOPATH/src/golang.org/x
    
    git clone https://github.com/golang/net.git
    git clone https://github.com/golang/crypto.git
    git clone https://github.com/golang/text.git
    

     最后在Mac 环境下执行,没有报错大功告成。

    go install github.com/micro/micro
    

     环境变量

    不管是windows, mac 还是Linux想要执行micro命令都需要配置环境变量。  

    cd GOPATH/src/github.com/micro/micro
    
    执行 go build
    

     会在GOPATH/bin文件夹下生成micro.exe文件,将GOPATH/bin文件夹路径加入环境变量后我们就可以直接运行micro命令了,如果没有在bin文件夹生成那么手动移到该文件夹。

    测试

    执行下面命令生成go-micro项目

    micro new github.com/micro/example
    

     注意 github.com/micro/example只是示例,要在本地测试,直接改成自己的路径即可

    那么生成的项目就在GOPATH/src/hdy/micro/example

    example/
        Dockerfile  # A template docker file
        README.md   # A readme with command used
        handler/    # Example rpc handler
        main.go     # The main Go program
        proto/      # Protobuf directory
        subscriber/ # Example pubsub Subscriber
    

      然后运行

    protoc --proto_path=. --micro_out=. --go_out=. proto/example/example.proto
    

      最后运行前确保etcd或者consul是开启的状态

    go run main.go
    

      即可看到完整的一个项目了。

    检测

    micro list services
    列出所有服务
    

    详细还请见GitHub  https://github.com/micro/micro

      

     

      

     

     

  • 相关阅读:
    NeurIPS 2018 中的贝叶斯研究
    史上最全采样方法详细解读与代码实现
    采样方法(二)MCMC相关算法介绍及代码实现
    第七十四篇:机器学习优化方法及超参数设置综述
    论文阅读:《Bag of Tricks for Efficient Text Classification》
    训练技巧详解【含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks
    数值分析-Legendre正交多项式 实现函数逼近
    指针生成网络(Pointer-Generator-Network)原理与实战
    强化学习入门 第五讲 值函数逼近
    UniGUI的 TUniPageControl控件动态拖动tabsheet的实现方法
  • 原文地址:https://www.cnblogs.com/flash55/p/11300627.html
Copyright © 2011-2022 走看看