以consul为注册中心的相关程序开发与配置demo
Go to file
suguo.yao 4ce81ad403 版权说明中文 2021-01-22 22:56:06 +08:00
proto 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
sample 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
.gitignore Initial commit 2021-01-22 13:46:54 +00:00
LICENSE 版权说明中文 2021-01-22 22:56:06 +08:00
Makefile 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
README.md 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
consul-demo 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
go.mod 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
go.sum 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00
main.go 写到这儿吧,睡了 2021-01-22 22:50:57 +08:00

README.md

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

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