consul-demo/README.md

1.6 KiB
Raw Blame History

consul-demo

以consul为注册中心的相关程序开发与配置demo

开发IDE:vscode

1. vscode-proto3 proto文件编辑

开发环境

1. sudo apt install protobuf-compiler
2. go get -v -u github.com/golang/protobuf/protoc-gen-go
3. go get -v -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
4. go get -v -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger

下载googleapis,本地源码库做不定期镜像

git clone git@myschools.me:suguo/googleapis.git

编写proto文件见网络上相关教程注意正式项目中的规范定义

google apis使用时的路径注意

生成proto代码,具体代码指令见Makefile

make proto

实现服务端代码

1. 准备文件夹与sample.proto对应
2. 编写struct名称固定为Server
3. 实现proto中定义的接口

实现服务启动,核心代码

s := grpc.NewServer()
pb.RegisterHelloServer(s, &sample.Server{})

go func() {
	log.Printf("starting grpc service on %s\n", ":9001")
	lis, err := net.Listen("tcp", ":9001")
	if err != nil {
		log.Fatal("fail to open port: ", err)
	}
	err = s.Serve(lis)
	if err != nil {
		log.Fatal("fail to open microservice: ", err)
	}
}()

注册中心注册代码编写

编写在文件consul-service.go中作为源代码组件形式分发

实现客户端代码

启动注册中心consul

1. 开发模式
consul agent -dev -bind=0.0.0.0 -advertise=192.168.8.254 -client=0.0.0.0 -ui

运行及测试并展开后续针对consul各功能使用的代码