​​​​​​​https://github.com/micro/micro

目前用上面的micro代码工具micro new来创建目录

https://github.com/asim/go-micro

代码运行用asim的micro framework

import

"github.com/asim/go-micro/v3"
    "github.com/asim/go-micro/v3/logger"

这个分开用的情况应该也是V3商业化的原因

get后去下面的位置 生产micro命令行工具,

cd go/pkg/mod/github.com/micro/micro/v3

$ sudo go build -o micro main.go
$ sudo cp micro /bin/

以下是老版本的安装方式,仅供参考

Go-Micro工具安装步骤

1.protobuf 编译工具安装 
1、下载 protoBuf: 
git clone https://github.com/protocolbuffers/protobuf.git 
2、或者直接将压缩包拖入后解压 
unzip protobuf.zip 
3、安装依赖库 
sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y 
4、进入目录 
cd protobuf/ 
5、自动生成configure配置文件: 
./autogen.sh 
6、配置环境: 
./configure 
7、编译源代码(时间比较长): 
make 
8、安装 
sudo make install 
9、刷新共享库 (很重要的一步啊) 
sudo ldconfig 
10、成功后需要使用命令测试 
protoc -h
2.protobuf 的 go 语言插件安装
1获取 proto包
Go语言的proto API接口
go get -v -u github.com/golang/protobuf/proto
go get -v -u github.com/golang/protobuf/protoc-gen-go

2编译
cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/
go build
3将生成的 protoc-gen-go可执行文件,放在/bin目录下
sudo cp protoc-gen-go /bin/

3.protobuf基本编译
通过如下方式调用protocol编译器:
protoc --proto_path=IMPORT_PATH --go_out=DST_DIR path/to/file.proto

其中:

–proto_path=IMPORT_PATH,IMPORT_PATH指定了 .proto 文件导包时的路径,如果忽略则默认当前目录。如果有多个目录则可以多次调用–proto_path,它们将会顺序的被访问并执行导入。
–go_out=DST_DIR, 指定了生成的go语言代码文件放入的文件夹
允许使用 protoc --go_out=./ *.proto 的方式一次性编译多个 .proto 文件
编译时,protobuf 编译器会把 .proto 文件编译成 .pd.go 文件
通过以下命令对刚写好的proto文件进行编译
protoc --go_out=./ *.proto

4.gRPC
环境搭建:
#将x.zip 解压到 $GOPATH/src/golang.org/x 目录下
$ unzip x.zip -d /GOPATH/src/golang.org/x
#-d 是指定解压目录地址
#/home/itcast/go/src/golang.org
#文件名为x
#将google.golang.org.zip 解压到 $GOPATH/src/google.golang.org 目录下

启动服务端 :
$ cd $GOPATH/src/google.golang.org/grpc/examples/helloworld/greeter_server
$ go run main.go

启动客户端:
$ cd $GOPATH/src/google.golang.org/grpc/examples/helloworld/greeter_client
$ go run main.go

consul
1.下载安装:
这里以 Linux系统为例:
$ wget https://releases.hashicorp.com/consul/1.4.2/consul_1.4.2_linux_amd64.zip
$ unzip consul_1.4.2_linux_amd64.zip
$ mv consul /usr/local/bin/

2.验证安装:
$ consul

启动 Consul Server:
#node1:
$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n1 -bind=192.168.110.155 -ui -config-dir /etc/consul.d -rejoin -join 192.168.110.155 -client 0.0.0.0
#运行cosnul agent以server模式
-server : 定义agent运行在server模式
-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用
-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
-ui: 启动web界面
-config-dir::配置文件目录,里面所有以.json结尾的文件都会被加载
-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

#node2:
$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n2 -bind=192.168.110.169 -ui -rejoin -join 192.168.110.155

-server : 定义agent运行在server模式
-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用
-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
-ui: 启动web界面
-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-config-dir::配置文件目录,里面所有以.json结尾的文件都会被加载
-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0
-join 192.168.110.121 : 启动时加入这个集群

3.启动 Consul Client:
#node3:
$ consul agent -data-dir /tmp/consul -node=n3 -bind=192.168.110.157 -config-dir /etc/consul.d -rejoin -join 192.168.110.155

运行cosnul agent以client模式,-join 加入到已有的集群中去。

4.查看集群成员:
$ consul members
#节点 网络地址 状态 类型 版本 协议 数据中心 分管部分
Node Address Status Type Build Protocol DC Segment

n1 192.168.110.7:8301 alive server 1.1.0 2 dc1 
n2 192.168.110.121:8301 alive server 1.1.0 2 dc1 
n3 192.168.110.122:8301 alive client 1.1.0 2 dc1

5.停止Agent:
$ consul leave

6.注册服务:
搭建好conusl集群后,用户或者程序就能到consul中去查询或者注册服务。可以通过提供服务定义文件或者调用HTTP API来注册一个服务.

首先,为Consul配置创建一个目录.Consul会载入配置文件夹里的所有配置文件.在Unix系统中通常类似 /etc/consul.d (.d 后缀意思是这个路径包含了一组配置文件).

$ mkdir /etc/consul.d

然后,我们将编写服务定义配置文件.假设我们有一个名叫web的服务运行在 10000端口.另外,我们将给他设置一个标签.这样我们可以使用他作为额外的查询方式:

{
“service”: { #服务
“name”: “web”, #名称
“tags”: [“master”], #标记
“address”: “127.0.0.1”, #ip
“port”: 10000, #端口
“checks”: [
{
“http”: “http://localhost:10000/health”,
“interval”: “10s” #检查时间
}
]
}
}

micro
1.下载micro
$ go get -u -v github.com/go-log/log
$ go get -u -v github.com/gorilla/handlers
$ go get -u -v github.com/gorilla/mux
$ go get -u -v github.com/gorilla/websocket
$ go get -u -v github.com/mitchellh/hashstructure
$ go get -u -v github.com/nlopes/slack
$ go get -u -v github.com/pborman/uuid
$ go get -u -v github.com/pkg/errors
$ go get -u -v github.com/serenize/snaker
#hashicorp_consul.zip包解压在github.com/hashicorp/consul
$ unzip hashicorp_consul.zip -d github.com/hashicorp/consul
#miekg_dns.zip 包解压在github.com/miekg/dns
$ unzip miekg_dns.zip -d github.com/miekg/dns
$ go get github.com/micro/micro

2.编译安装micro
$ cd $GOPATH/src/github.com/micro/micro
$ go build -o micro main.go
$ sudo cp micro /bin/

3.插件安装
go get -u -v github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u -v github.com/micro/protoc-gen-micro

关于gitcom下载慢问题
vim /etc/hosts
192.30.253.112 github.com
151.101.185.194 github.global.ssl.fastly.net
reboot

sudo go 提示找不到命令:sudo: go: command not found

参考

https://blog.csdn.net/qq_38388811/article/details/111478873

GO micro V3环境搭建相关推荐

  1. Micro(二)[环境搭建]

    Micro-环境搭建 1.下载 2.编译 3.插件安装 4.测试 micro的github地址: https://github.com/micro 1.下载 go get -u -v github.c ...

  2. STM32F4 | 最小系统设计 | 开发板资源介绍 | 开发环境搭建 | 程序下载

    文章目录 一.STM32最小系统设计 1.什么叫MCU最小系统? 2.STM32最小系统 2.1 供电电路(电源部分) 2.2 复位电路 2.3 时钟电路 2.4 BOOT启动模式选择 2.5 下载电 ...

  3. APM飞控学习之路:3 APM系统介绍与开发环境搭建

    "工欲善其事,必先利其器".在进行无人机飞控开发时,选择一个合适的软硬件平台以及IDE是十分重要的.目前,APM飞控成熟度高,开发工具齐全,社区建设完善,开发者文档丰富,适合开源选 ...

  4. LAMP环境搭建之rpm软件包

    Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个 ...

  5. esp32 linux内核,【小狂系列】跟着小狂玩ESP32之编译环境搭建篇

    本帖最后由 3guoyangyang7 于 2016-11-3 18:41 编辑 趁热要打铁,昨天发了ESP32的预告贴,今天小狂就带大家刷一刷ESP32的编译环境搭建.怎么说的,ESP32可以在多平 ...

  6. 图像识别DM8127开发攻略——开发环境搭建

    经过两年多的爆炸性出货(针对我们这种小公司),目前稍微停顿了一下,现在难得有点时间继续写自己的博客,其实自己一直想静下心来做点东西,可惜做TI DAVINCI(ARM+DSP)这方面的人不太好招,本人 ...

  7. -i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译

    一.前言 NXP 针对 Machine Learning ( ML ) 创建了 eIQ 工具,以方便开发者在 i.MX 系列设备上开发 ML 相关应用. 本篇将会分两个章节,一章节介绍 eIQ 软件, ...

  8. lux系统服务器安装后多大,服务器环境搭建

    框架使用: maven的setting文件修改 运行环境配置:dev 服务器环境搭建: 一.docker安装 1.卸载旧版本 sudo yum remove docker ​ docker-clien ...

  9. TI Davinci DM6446开发攻略——开发环境搭建

    TI DAVINCI DM6446的开发环境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之类的单核ARM那么简单,因为DM6446还有DSP端的开发环境,以及双核之间 ...

最新文章

  1. 计算机二级aoa软件_国产软件WPS进入全国计算机二级考试 明年3月实施
  2. MS-SQL CLR 扩展函数包 CLR_FunctionS!
  3. 计算机视觉领域还能耍什么花样?
  4. 收藏 | PyTorch深度学习模型训练加速指南2021
  5. 菜鸟学习笔记:Java提升篇11(Java动态性1——注解与反射)
  6. Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'...
  7. [Android]PhoneGap源码分析——白名单
  8. the basic concepts of c#
  9. Java Mysql工具类封装
  10. ExtJS实战教程~~前言
  11. 公开我的 星际帝国 辅助程序源代码
  12. 【Spring】Spring事务管理
  13. STM32的USART中RTS、CTS的作用和意义
  14. linux下安装sl
  15. 版本管理工具使用之svn
  16. 浅析局域网ARP欺骗导致的信息泄露
  17. Linux下三国杀聊天窗口乱码 解决方法
  18. 知识付费项目怎么做?具体操作方法详解!
  19. 外贸管理软件是怎样帮您管理客户的?
  20. 关于数据冗余的一点思考

热门文章

  1. gbip指令集_ARM汇编指令集
  2. 做生产智能供料系统公司排名
  3. 曝光,程序员大佬们的的 10 个摸鱼神器
  4. TCP协议网络安全攻击
  5. jenkins+docker+maven自动化部署
  6. 5.23 C语言练习(平均值计算:输入10个整数,求它们的平均值,并输出大于平均值的数据的个数。)
  7. 颜色 16进制表示 一一对应
  8. 论文总结(三)-- 超分辨算法基础与综述
  9. 你好, View Binding! 再次再见, findViewById!
  10. 2013年全国硕士研究生入学统一考试英语(一)和(二)考试大纲新增的60个词汇详解