创建Github Repository
登录Github,创建一个Repository,取名go-micro-demo
首次提交,参照如下命令(使用 Git Bash Here)
mkdir -p /c/gitrepo/go-micro-demo cd /c/gitrepo/go-micro-demo echo "# go-micro-demo" >> README.md git init git add README.md git commit -m "create go-micro-demo" git remote add origin https://github.com/nealguo/go-micro-demo.git git push -u origin master
创建 C:\gitrepo\go-micro-demo
编写 README.md
提交到 https://github.com/nealguo/go-micro-demo.git
编写两个服务
分别编写 consignment-service 和 vessel-service,前者会通过服务名来发现后者
func main() { vessels := []*pb.Vessel{ {Id: "vessel1001", Name: "Boaty McBoatface", MaxWeight: 20000, Capacity: 500}, } repo := &VesselRepository{vessels} srv := micro.NewService( micro.Name("go.micro.srv.vessel"), micro.Version("latest"), ) srv.Init() pb.RegisterVesselServiceHandler(srv.Server(), &service{repo}) if err := srv.Run(); err != nil { fmt.Println(err) } }
来自 go-micro-demo/vessel-service/main.go
vessel-service 以 go.micro.srv.vessel 为服务名启动
func main() { repo := &ConsignmentRepository{} // Create a new service. Optionally include some options here srv := micro.NewService( // This name must match the package name give in your protobuf definition micro.Name("go.micro.srv.consignment"), micro.Version("latest"), ) client := vessel.NewVesselServiceClient("go.micro.srv.vessel", srv.Client()) // Init will parse the command line flags srv.Init() // Register handler pb.RegisterShippingServiceHandler(srv.Server(), &service{repo, client}) // Run the server if err := srv.Run(); err != nil { fmt.Println(err) } }
来自 go-micro-demo/consignment-service/main.go
consignment-service 以 go.micro.srv.consignment 为服务名启动
consignment-service 通过 go.micro.srv.vessel 来发现 vessel-service
详细内容参见 https://github.com/nealguo/go-micro-demo
上传Github
git add consignment-service/ git add vessel-service/ git commit -m "add consignment-service and vessel-service" git push -u origin master
添加 consignment-service 和 vessel-service
提交到 origin (https://github.com/nealguo/go-micro-demo)
参考
《git - 简易指南》http://www.bootcss.com/p/git-guide/
《Git远程操作详解》http://www.ruanyifeng.com/blog/2014/06/git_remote.html
《Docker and micro》https://dzone.com/articles/create-versatile-microservices-in-golang-part-2-do