jjzjj

go - 如何将 row.Scan() int32 转换为 Golang gRPC protobuf Enum 字段?

//agent.protomessageAgent{Permissionpermission=1;google.protobuf.Timestampborn_time=2;messagePermission{Typetype=1;enumType{KILLNONE=0;KILLALL=1;DANCE=2;}}}然后将SQL行扫描到代理protobuf结构中://main.govaraproto.Agent........row.Scan(&a.Permission.Type,...)对于默认类型,该权限类型存储为简单的MariaDBINT()value=0。所以,我不能直接扫描它。因此

go - 使用入口部署 Rest + gRPC 服务器部署到 k8s

我使用了示例gRPCHelloWorld应用程序https://github.com/grpc/grpc-go/tree/master/examples/helloworld.本示例在本地系统运行流畅。我想使用Ingress将它部署到kubernetes。下面是我的配置文件。service.yaml-作为NodePortapiVersion:v1kind:Servicemetadata:name:grpc-scratchlabels:run:grpc-scratchannotations:service.alpha.kubernetes.io/app-protocols:'{"grpc

go - golang 中 server.GracefulStop() 的行为

我有一个gRPC服务器,我已经实现了像这样正常关闭我的gRPC服务器funmain(){//Somecodeterm:=make(chanos.Signal)gofunc(){iferr:=grpcServer.Serve(lis);err!=nil{term这很好用。相反,如果我在主goroutine中编写grpcServer.Serve()逻辑并将关闭处理程序逻辑放入另一个goroutine,则server.GracefulStop()之后的语句通常不会执行.如果完全执行closeDbConnections(),一些DbConnections将关闭。server.GracefulS

go - 如何在 Go 中创建一个通用的 GRPC 服务器启动函数

我正在尝试抽象GRPC服务器的启动原主函数如下:funcmain(){lis,err:=net.Listen("tcp",port)iferr!=nil{log.Fatalf("failedtolisten:%v",err)}s:=grpc.NewServer()pb.RegisterCollectionServer(s,&server.Server{})//RegisterreflectionserviceongRPCserver.reflection.Register(s)iferr:=s.Serve(lis);err!=nil{log.Fatalf("failedtoserve:

go - gRPC 到远程服务器的带宽较慢

我有一个gRPC服务,可以将文件从本地机器传输到远程服务器,我注意到一些严重的带宽问题。平均而言,它的下载速度约为1mb/s,一个连接共享多个流(通常约为8个)。服务器使用TLS加密,但这似乎不是瓶颈,因为关闭TLS对性能的影响可以忽略不计。我还尝试使用iperf3直接测试客户端和服务器之间的带宽,结果是10mb/s。Connectingtohost,port[7]local10.0.0.112port59651connectedtoport[ID]IntervalTransferBitrate[7]0.00-1.00sec1.28MBytes10.7Mbits/sec[7]1.00-

go - grpc protobuf 使用字符串创建新结构

我正在使用微框架开发我的新项目,并且我已经完成了GRPC工作。但是现在,我需要编写与前端交互的网关。实在不想写重复的代码,在pb.go文件中找了一些代码。代码定义了一些结构和初始化函数。如下所示:typeAuthLoginReqstruct{Usernamestring`protobuf:"bytes,1,opt,name=username,proto3"json:"username,omitempty"`Passwordstring`protobuf:"bytes,2,opt,name=password,proto3"json:"password,omitempty"`XXX_NoU

go - 在 Go 中关闭 grpc 服务器时如何检测错误?

我正在尝试在GogRPC客户端代码中检测gRPC服务器关闭import(pb"mysample.com/api/rpc""google.golang.org/grpc")varstreampb.SearchProductService_MarketStreamClientfor{r,err:=stream.Recv()iferr==io.EOF{log.Println("Info:serverclose")break}elseiferr!=nil{log.Println("Err:grpccode:",grpc.Code(err))iferr!=nil{log.Fatal(err)}}

go - 如何使用 ProtoBuf 下载文件

我正在尝试通过浏览器直接实现文件下载。我们公司使用ProtocolBuffer作为数据通信格式。那么打开网页后如何下载文件呢?我尝试使用ProtocolBuffer的bytes和stream。但是结果是{"result":{"data":"Cw4ODg4ODgsMCw4ODg4ODgsMTUwMCwwLDE1MDAsNDAwMDAsMTAwMDAsMzAwMDAKMDMvMTEvMjAxNSxVbmtub3duIEl0ZW0sUHJlIFJvbGwgVmlkZW8gKG1heCAwOjMwKSw2MDAwMCwzMTAwMCwyOTAwMCw1MDAwMCwyNDAwMCwyNjAwM

go - 如何在 Proto3 中为 HTTP 响应创建一个可空字段?

我想返回一个对象作为HTTP响应,其中一个字段可以为空。问题是proto3不会让我轻易做到。发生这种情况是因为我将字符串指针解析为字符串,因此当指针指向null时会产生此错误运行时错误:无效内存地址或nil指针取消引用我尝试至少通过从Internet上学到的这两个解决方法来解决这个问题。1。使用一个exercise.proto(消息定义)messageExercisesData{stringSerial=1[json_name="serial"];stringTitle=2[json_name="title"];oneofOptionalSubmissionSerial{stringS

image - 通过 goRPC 发送和图像

我想使用golang数据包通过rpc发送图像valyalagoRPC我在服务器中接收图像类型时遇到了一些问题。这是我的客户端代码,它获取一张.jpg图像,对其进行解码并通过rpc发送:c:=&gorpc.Client{//TCPaddressoftheserver.Addr:"127.0.0.1:12345",}c.Start()reader,err:=os.Open("barranco.jpg")iferr!=nil{log.Fatal(err)}deferreader.Close()img,_,err:=image.Decode(reader)iferr!=nil{log.Fata