GO micro V3环境搭建

2 篇文章 0 订阅

​​​​​​​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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值