go-micro入门

0. 简单说明

  • 该实验用的是官方demo
  • 开发环境是win10
  • 如果遇到了墙,请参见之前的操作(用加速器拦截全部流量,绕过墙)
    go-micro入门_第1张图片

1. 启动consul

//go-micro的默认服务发现就是consul, 因此需要把consul起来
consul agent -dev -ui -client 0.0.0.0
或者
consul agent -server -bootstrap-expect=1 -data-dir=D:/consul/data -node=consul -bind=127.0.0.1 -ui -client=0.0.0.0

//注意
启动consul,然后打开ui是有讲究的。比如说,consul_1.5.3_windows_amd64和consul_1.4.2_windows_amd64的表现不一样。即1.5.3貌似不稳定,有时候ui能打开,有时候不能打开。1.4.2是老版本,但这个每次都能打开ui。感觉1.5.3可能是有bug

go-micro入门_第2张图片
微服务向consul注册时的报文
go-micro入门_第3张图片
上图红框处的数据格式化后,如下所示

{
  "ID": "greeter-876bea4f-8337-4cff-a4b6-f61f9c9910aa",
  "Name": "greeter",
  "Tags": [
    "t-789caa564a2acacf4e2d52b252ca28292950aa05040000ffff364d0600",
    "t-789caa562a4e2d2a4b2d52b252ca2d4d2e50aa05040000ffff37200607",
    "t-789caa562a4a4dcf2c2e29aa54b2524acecf2b2ecd51aa05040000ffff560f07c8",
    "t-789caa562a28ca2fc94fcecf51b252ca2d4d2e50aa05040000ffff46a906e2",
    "t-789caa562a294acc2b2ec82f2a51b252ca28292950aa05040000ffff4f930768",
    "e-789c84cf41cac23010c5f1bbbc75f90e900b7caedd8a8b019f4598a4353311447277492d41ace02af0cf0b3ff240924804fc67d299ff76549d3020f35a688ed017cbcd7ecd03fc3e7fa937d1424338f467cbd1e7e6f992c6b7612aaaf5581b68f3948c5b71ed9f64cf5b736c9f79393fdd489793b834d73c532202cea246d4fa0c0000ffff256462b2",
    "v-789cca492c492d2e01040000ffff08cc028e"
  ],
  "Port": 45803,
  "Address": "192.168.174.1",
  "Check": {
    "TTL": "30s",
    "DeregisterCriticalServiceAfter": "1m5s"
  },
  "Checks": null
}

2. 安装依赖

//下载包并生成工具
go get -u google.golang.org/grpc
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/micro/go-micro
go get -u github.com/micro/protoc-gen-micro
go get -u github.com/micro/micro

//注意
这里下载包,一定会失败。要注意姿势,科学上网,可以参考之前的文章

go-micro入门_第4张图片

3.下载protoc工具

  • 下好解压,把它丢入$GOPATH/bin目录下
  • 如果protoc没有生效,需要加入环境变量
  • Protocol Buffers源码
  • Protocol Buffers二进制工具

4.下载go-micro官网例子

go-micro入门_第5张图片
go-micro入门_第6张图片

  • 官方源码
  • 官网
  • 官方例子
  • 官方中文例子

5.测试官方例子

5.1下载例子

cd C:\Users\wuxian\go\src\github.com\micro\examples
git clone https://github.com/micro/examples.git

5.2编译

C:\Users\wuxian\go\src\github.com\micro\examples\greeter  //这是我实验的项目

protoc --proto_path=$GOPATH/src:. --micro_out=. --go_out=. hello.proto

go-micro入门_第7张图片

5.3运行api

go run .\api.go --registry=consul  //如果不加registry,会出行莫名奇妙的错误

go-micro入门_第8张图片

5.4运行server和client

go run .\main.go --registry=consul   //如果不加registry,会出行莫名奇妙的错误

go-micro入门_第9张图片

参考资料

Micro 架构与设计
Golang 中的微服务 - 第一部分

你可能感兴趣的:(go)