Open hhstore opened 5 years ago
https://wuyin.io/tags/%E5%BE%AE%E6%9C%8D%E5%8A%A1/
专题10篇:
https://lixiangyun.gitbooks.io/go-micro/content/Overview/FAQ.html
API服务:
Web服务:
SRV服务:
https://github.com/micro/examples/blob/master/greeter/api/rest/rest.go
https://lixiangyun.gitbooks.io/go-micro/content/Components/API.html
https://github.com/emicklei/go-restful
实现
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
.proto
文件转换为swagger.json
文件swagger.json
成为一个Serve
the APITrace | Distributed tracing: Zipkin
参考示例项目用法:
https://golangcaff.com/articles/171/go-practical-micro-service-service-discovery
go get -u github.com/micro/micro
#
brew install protobuf
#
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u github.com/micro/protoc-gen-micro
# 创建:
micro new github.com/micro/example
# 编译pb:
protoc --proto_path=. --micro_out=. --go_out=. proto/example/example.proto
# 运行:
go run main.go
new
: https://micro.mu/docs/new.html
api
: https://micro.mu/docs/api.htmlweb
: https://micro.mu/docs/web.htmlcli
: https://micro.mu/docs/cli.html#usagebot
: https://micro.mu/docs/bot.html
go get github.com/micro/go-micro
go get github.com/micro/micro
# Demo:
go get github.com/micro/examples/greeter/srv && srv
docker-compose -f devops-consul.yml up -d
cd $GOPATH
# 创建一个demo项目:
micro new micro_demo
# 创建成功有提示信息: 告诉你先生成 protobuf文件:
cd $GOPATH/src/micro_demo
protoc --proto_path=. --go_out=. --micro_out=. proto/example/example.proto
cd GOPATH/src/micro_demo
(py27-base) ζ go run main.go
2018/09/21 15:27:36 Listening on [::]:49408
2018/09/21 15:27:36 Broker Listening on [::]:49409
2018/09/21 15:27:36 Registering node: go.micro.srv.demo2-cfd100c4-bd6f-11e8-bb1a-a45e60b7c119
# henry@hh-rmbp: ~/iGit/iSpace/iGo/libdir/src/demo2
(py27-base) ζ micro list services
consul
go.micro.srv.demo2
topic:go.micro.srv.demo2
# henry@hh-rmbp: ~/iGit/iSpace/iGo/libdir/src/demo2 (15:31:08)
(py27-base) ζ micro call go.micro.srv.demo2 Example.Call '{"name": "John"}'
{
"msg": "Hello John"
}
micro web
https://micro.mu/docs/web.html#run
# henry@hh-rmbp: ~/iGit/iSpace/iGo/libdir/src/demo2 (15:35:55)
(py27-base) ζ micro web
2018/09/21 15:35:57 Listening on [::]:8082
2018/09/21 15:35:57 Listening on [::]:49562
2018/09/21 15:35:57 Broker Listening on [::]:49563
2018/09/21 15:35:57 Registering node: go.micro.web-faae005c-bd70-11e8-a266-a45e60b7c119
创建一个空项目:
base URLL: gitlab.com/ceres-mirror/exchange-trade-proxy4
git clone git@gitlab.com:ceres-mirror/exchange-trade-proxy4.git
go get -u github.com/micro/micro
#
brew install protobuf
#
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u github.com/micro/protoc-gen-micro
# 创建API依赖:
go get -t github.com:micro/go-api
micro new -h
选项: https://lixiangyun.gitbooks.io/go-micro/content/Components/New.html
# exchange:
micro new --type srv --alias exchange --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/exchange/srv
micro new --type web --alias exchange --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/exchange/web
micro new --type api --alias exchange --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/exchange/api
micro new --type fnc --alias exchange --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/exchange/fnc
# trade:
micro new --type srv --alias trade --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/trade/srv
micro new --type web --alias trade --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/trade/web
micro new --type api --alias trade --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/trade/api
# order:
micro new --type srv --alias order --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/order/srv
micro new --type web --alias order --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/order/web
micro new --type api --alias order --namespace "com.ceres.trade.proxy" gitlab.com/ceres-mirror/exchange-trade-proxy4/server/order/api
cd ~/src/gitlab.com/ceres-mirror/exchange-trade-proxy4/server/trade/api
protoc --proto_path=. --go_out=. --micro_out=. proto/example/example.proto
gen
报错, 可能是多个 GOPATH
问题, 改成一个, 可解决.terminal
窗口, 分别启动:# 服务1:
./exchange-srv
# 服务2:
./exchange-web
# 启动 :8082 端口访问web端
micro web
# 启动:
micro api
web端:
web端调用:
# 查看服务列表:
# henry@hh-rmbp: ~/iGit/iSpace/iGo (15:35:15)
(py27-base) ζ micro list services
com.ceres.trade.proxy.srv.exchange
com.ceres.trade.proxy.web.exchange
consul
go.micro.api
go.micro.web
topic:com.ceres.trade.proxy.srv.exchange
# 调用API:
# henry@hh-rmbp: ~/iGit/iSpace/iGo (15:35:23)
(py27-base) ζ micro call com.ceres.trade.proxy.srv.exchange Example.Call '{"name": "john"}'
{
"msg": "Hello john"
}
docker-compose.yml
给了服务定义结构:
user/
api/ # api routes
web/ # web html
client/ # generated clients
service/ # core service types
handler/ # request handlers
subscriber/ # message subscribers
proto/ # proto generated code
main.go # service main
user.mu # mu definition
README.md # readme
示例:
示例:
相关:
115