325-micro入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 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已经运行成功了








猜你喜欢

转载自blog.csdn.net/qq_33781658/article/details/88724900
325
今日推荐