kratos使用日记
kratos是bilibili的一个微服务开源框架,里面封装了很多功能,可以很方便的进行grpc和ponent/metadata
坑:metadata默认名字问题
1.服务端元数据的名字必须是x-md-开头
2.客户端元数据的名字必须是x-md-global-开头
如果不想使用kratos官方的元数据获取方式,也可以自己实现这两个方法
链路追踪可以看到服务的整个调用链路,可以很好的排查问题,当然有一定的性能损耗。
准备工作:本地装好jaeger
1.先安装好docker
2.运行下面的命令获取jaeger镜像并启动一个本地的容器
docker run -d -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 -p 14269:14269 -p 9411:9411 jaegertracing/all-in-one:latest
3.客户端上报地址
/go-kratos/swagger-api/openapiv2"
安装protoc插件
go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
然后执行命令 protoc -I . --openapiv2_out ./ --openapiv2_opt logtostderr=true --openapiv2_opt json_names_for_fields=false xxxx文件名.proto
会在当前目录生成文档