go-micro搭建

------------------------------------
 go get github.com/micro/micro/v2  //会在GOPATH的bin目录下安装一个micro将其路径加入环境变量

micro --version查看是否安装成功
 brew install etcd
 # install
brew install etcd
# run
etcd 
# Use flag
micro --registry=etcd list services

# Use env var
MICRO_REGISTRY=etcd micro list services`
#指定etcd不在同一主机上的地址。
MICRO_REGISTRY_ADDRESS=127.0.0.1:2379

# install protobuf 本机已安装,故注释
#brew install protobuf

# install protoc-gen-go 
#go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

# install protoc-gen-micro
#go get -u github.com/micro/protoc-gen-micro/v2
##生成示例模板
micro new github.com/micro/example


##该命令将输出

#example/
#    Dockerfile    # A template docker file
#    README.md    # A readme with command used
#    handler/    # Example rpc handler
#    main.go        # The main Go program
#    proto/        # Protobuf directory
#    subscriber/    # Example pubsub Subscriber##

#cd 到 example目录
protoc --proto_path=. --micro_out=. --go_out=. proto/example/example.proto
# cd into your service directory
cd github.com/micro/example

# run the service
micro run service --local  ##linux未通过
##启动模板服务
go run main.go

##查看到 go.micro.srv.example
micro list services

##输出量
service  go.micro.srv.example
version latest
micro get service go.micro.srv.example

通过CLI进行RPC调用。查询以json的形式发送。
micro call go.micro.srv.example Example.Call '{"name": "John"}'
输出量

{
    "msg": "Hello John"
}

MICRO_API_HANDLER=rpc \
MICRO_API_NAMESPACE=go.micro.srv \
micro api

使用json向api发出POST请求
curl -XPOST -H 'Content-Type: application/json' -d '{"name": "John"}' http://localhost:8080/example/call
输出量
{"msg":"Hello John"}

你可能感兴趣的:(golang)