版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33781658/article/details/88724900
micro入门
micro
micro解决了构建云本地系统的关键需求
它采用了微服务体系结构模式,将其转换为一组工具
作为可伸缩平台的构建块
micro隐藏了分布式系统的复杂性
是一个专注于简化分布式系统开发的微服务生态系统
github.com/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
然后编译安装micro
$ cd $GOPATH/src/github.com/micro/micro
$ go build -o micro main.go
$ sudo cp micro /bin/
安装插件
go get -u -v github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u -v github.com/micro/protoc-gen-micro
命令
new Create a new Micro service by specifying a directory path relative to your $GOPATH
#创建 通过指定相对于$GOPATH的目录路径,创建一个新的微服务。
USAGE:
#用法
micro new [command options][arguments...]
--namespace "go.micro" Namespace for the service e.g com.example
#服务的命名空间
--type "srv" Type of service e.g api, fnc, srv, web
#服务类型
--fqdn FQDN of service e.g com.example.srv.service (defaults to namespace.type.alias)
#服务的正式定义全面
--alias Alias is the short name used as part of combined name if specified
#别名是在指定时作为组合名的一部分使用的短名称
我们执行
micro new --type "srv" micro/rpc/srv
然后看下执行结果
Creating service go.micro.srv.srv in /home/itcast/workspace/go/src/micro/rpc/srv
.
├── main.go
├── plugin.go
├── handler
│?? └── example.go
├── subscriber
│?? └── example.go
├── proto/example
│?? └── example.proto
├── Dockerfile
├── Makefile
└── README.md
download protobuf for micro:
brew install protobuf
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u github.com/micro/protoc-gen-micro
compile the proto file example.proto:
cd /home/itcast/workspace/go/src/micro/rpc/srv
protoc --proto_path=. --go_out=. --micro_out=. proto/example/example.proto
这样我们就创建了srv
那么我们进入目录看一下
cd /home/itcast/workspace/go/src/micro/rpc/srv
我们看到
Dockerfile handler main.go Makefile plugin.go proto README.md subscriber
这些文件
然后人家已经给出了指令
让我们执行
那我们就执行
protoc --proto_path=. --go_out=. --micro_out=. proto/example/example.proto
然后我们进入
/workspace/go/src/micro/rpc/srv/proto/example
就看到了
example.micro.go example.pb.go example.proto
这些文件
然后我们再创建web
执行
micro new --type "web" micro/rpc/web
结果是
Creating service go.micro.web.web in /home/itcast/workspace/go/src/micro/rpc/web
.
├── main.go
├── plugin.go
├── handler
│?? └── handler.go
├── html
│?? └── index.html
├── Dockerfile
├── Makefile
└── README.md
现在srv和web都创建成功了
现在我们启动consul
consul agent -dev
然后我们启动srv,srv下
go run main.go
然后我们启动web,web下
go run main.go
给我们的端口是39693
那么我们访问一下
localhost:39693
那么这个小的example已经运行成功了