go-kratos系列-其它

本文描述了go微服务框架kratos使用过程中的一些额外事项

环境

consul

mac
win

1
2
$ consul agent -dev
$ curl localhost:8500

go grpc

kratos pb规范

生成api proto

1
2
$ kratos proto add api/project/service/v1/project.proto
$ kratos proto client api/project/service/v1/project.proto
1
2
3
4
5
6
7
8
$ # 进入解决方案目录
$ protoc --go_out=. \
--proto_path=. \
--proto_path=./third_party \
--go_opt=paths=source_relative \
--go-grpc_out=. \
--go-grpc_opt=paths=source_relative \
api/project/service/v1/project.proto

生成swagger json

1
2
3
4
5
6
7
$ # 进入解决方案目录
$ protoc --proto_path=. \
--proto_path=./third_party \
--openapiv2_out . \
--openapiv2_opt logtostderr=true \
--openapiv2_opt json_names_for_fields=false \
api/project/service/v1/project.proto

生成conf proto

1
2
$ # 进入解决方案目录
$ protoc --go_out=. --go_opt=paths=source_relative app/project/service/internal/conf/conf.proto

wire

生成wire文件

Goland Debug 配置

Goland Edit Configuration
选择go build -> Directory
Directory: 选择入口go文件所在目录,如:E:\src\_outer\beer-shop\app\user\service\cmd\server
勾选Run after build
Working directory: 选择项目文件所在目录,如:E:\src\_outer\beer-shop\app\user\service
Program arguments:填写执行时需传入的参数,如:-conf E:\src\_outer\beer-shop\app\user\service\configs

手工编译运行

1
2
3
$ # 进入项目文件所在目录,如: `E:\src\_outer\beer-shop\app\user\service`
$ go build -o ./bin/ ./...
$ ./bin/server -conf ./configs

docker编译运行

1
2
3
$ # 进入解决方案目录,如:`E:\src\_outer\beer-shop`
$ docker build -f ./deploy/build/Dockerfile --build-arg APP_RELATIVE_PATH=user/service --build-arg APP_ENV=docker -t user .
$ docker run -it --rm -p 8000:8000 -p 9000:9000 -v E:\\src\\_outer\\log:/data/log user

语言

mysql

mysql连接报错: is not allowed to connect to this MySQL server

1
2
update user set host = '%' where user ='root';
flush privileges;

框架

参考

kratos2.0 goland debug配置