添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

kratos 疑惑记录

  1. 使用kratos tool protoc *.proto 编译生成 grpc 与 http 代码
  2. 在 proto 代码中引用 import "google/protobuf/timestamp.proto" ; 使用*timestamp.Timestamp 类型的对象

*.pb.go 文件中, *timestamp.Timestamp 类型的对象编译失败

api/objectStorageService.pb.go:1834:31: m.LastModified.MarshalToSizedBuffer undefined (type *timestamppb.Timestamp has no field or method MarshalToSizedBuffer)
api/objectStorageService.pb.go:2382:31: m.CreationDate.MarshalToSizedBuffer undefined (type *timestamppb.Timestamp has no field or method MarshalToSizedBuffer)
api/objectStorageService.pb.go:2642:31: m.LastModified.MarshalToSizedBuffer undefined (type *timestamppb.Timestamp has no field or method MarshalToSizedBuffer)
api/objectStorageService.pb.go:2746:21: m.LastModified.Size undefined (type *timestamppb.Timestamp has no field or method Size)
api/objectStorageService.pb.go:2997:21: m.CreationDate.Size undefined (type *timestamppb.Timestamp has no field or method Size)
api/objectStorageService.pb.go:3125:21: m.LastModified.Size undefined (type *timestamppb.Timestamp has no field or method Size)
api/objectStorageService.pb.go:3589:28: m.LastModified.Unmarshal undefined (type *timestamppb.Timestamp has no field or method Unmarshal)
api/objectStorageService.pb.go:5023:28: m.CreationDate.Unmarshal undefined (type *timestamppb.Timestamp has no field or method Unmarshal)
api/objectStorageService.pb.go:5817:28: m.LastModified.Unmarshal undefined (type *timestamppb.Timestamp has no field or method Unmarshal)

kratos 动态生成 grpc 代码时 ,使用的是 protoc --gofast_out=plugins=grpc:. *.proto ,本质上使用的是 protoc-gen-gofast

直接使用 protoc --go_out=plugins=grpc:. *.proto 生成文件没有问题,即使用 protoc-gen-go 没有问题

protoc --go_out=plugins=grpc:. *.proto

报错:object_detection/protos/flexible_grid_anchor_generator.proto: File not found. object_detection/protos/grid_anchor_generator.proto: File not found. object_detection/protos/multiscale_anchor_generato...
查看项目文件pbdemo/api/api.proto: // 定义项目 API 的 proto 文件 可以同时描述 gRPC 和 HTTP API // protobuf 文件参考: // - https://develop
文章目录apicmdconfigsdaodimodelserverservice 上篇文章go微服务框架kratos学习笔记一(kratos demo)跑了kratos demo 本章来看看demo项目的整体结构。 ├─api # 对外接口 ├─cmd # main ├─configs # 配置 ├─internal │ ├─dao #数据访问...
kratos的grpc框架 不是直接使用的google的grpc,http也是对grpc接口做了封装(上一节我们就学习了使用pb生成http相关接口)。 官方原文: GRPC Warden:基于官方gRPC开发,集成discovery服务发现,并融合P2C负载均衡; 这次我们需要新建2个项目,用于展示RCP的相互调用,由于都是可以调用对方提供的服务,所以两个服务都可以作为客户端和服务端。 新建项目(服务1): kratos new rpcserver1 #这里不指定创建类型,项目会同事 https://blog.csdn.net/freewebsys/article/details/109139648 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys 1,关于kratos Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。 go get -u github.com/golang/protobuf/{proto,protoc-gen-go} 看到项目目录gopath文件夹下面bin文件夹中生成protoc-gen-go可执行文件,则证明grpc安装成功。 然后cd到你项目中存放.proto文件的目录下 执行:protoc --go_out=plugins=...
开发中需要用java程序调用一个golang程序的grpc接口。需要使用原始proto文件生成java的模板代码。 网上教程大多数给的是这段代码: protoc -I=. --java_out=out engine.proto 这个代码生成的内容里,只会有proto的序列化和反序列化代码。不会有调用服务所用的newBlockingStub(chan);代码段,因此我们无法调用外部服务。(即只会翻译message段,不会翻译service段) 首先,从https://repo1.maven.org
创建项目成功后,进入api目录下可以看到api.proto文件: option go_package = "api"; option (gogoproto.goproto_getters_all) = false; service RPCDemo { rpc Ping(.google.protobuf.Empty) returns (.google.protobuf.Empty); rpc SayHello(HelloReq) returns (.google.protobuf.Empt
首先,客户端发起RPC调用请求 // SayHello say hello. func (d *dao) SayHello(c context.Context, req *api.HelloReq) (resp *empty.Empty, err error) { if resp, err = d.demoClient.SayHello(c, req); err != nil { Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。 Features HTTP Blademaster:核心基于gin进行模块化设计,简单易用、核心足够轻量; GRPC Warden:基于官方gRPC开发,集成discovery服务发现,并融合P2C负载均衡; Cache:优雅的...
Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。 名字来源于:《战神》游戏以希腊神话为背景,讲述由凡人成为战神的奎托斯(Kratos)成为战神并展开弑神屠杀的冒 险历程。 快速开始前,首先需要安装Go环境:Go version>=1.13 CentOS Go环境搭建, Windows自行百度哈 设置代理环境变量,提高下载速度。注意GO1.13及之后支持direct的写法 go env -w GOPROXY=https://gopro