草庐IT

grpc-precompiled-binaries

全部标签

go - 如何从 grpc-server 流式传输结果以及如何从 goroutines grpc server-stream 返回结果以将结果传递给 api

我有一个通过golang创建的api,它返回的结果{id:drone4item_parameter:{altitude:20,longitude:10.20latitude:24.5}作为json结果,但在它使用的代码中调用gofunc()进行处理的goroutines来自grpc-servergolang的结果像这样gofunc(){fmt.Print("startgetPositionloop")for{msg,err:=stream.Recv()//msgUAVPositioniferr==io.EOF{//readdone.fmt.Print("startgetPosition

docker - 使用 gRPC 进行容器间通信

我正在实现在两个不同容器上运行的两个服务(服务器和客户端),并尝试使用gRPC在它们之间进行通信。如果我将服务器部署为容器并在容器上不运行客户端,一切正常。但是,如果我将客户端部署在不同的容器上,我会收到Error#01:couldnotretrieverestaurant'slist:rpcerror:code=Unavailabledesc=grpc:theconnectionisunavailable错误。使用gRPC通信两个不同的容器时,我缺少哪些步骤?PS:我想暂时不用Kubernetes试试。服务器funcServe(){log.Println("serving...")p

go - 如何在 gRPC 中从服务器向客户端广播?

我现在正在gRPC中创建一个小型聊天应用程序,我遇到了一个问题,如果用户想作为客户端连接到gRPC服务器,我想广播事件已经发生到所有其他连接的客户端。我正在考虑使用某种观察者,但我对服务器如何知道谁已连接以及我如何将事件广播给所有客户端而不仅仅是一两个客户端感到困惑。我知道使用流是部分答案,但因为每个客户端都在与服务器创建自己的流,所以我不确定它如何订阅其他服务器-客户端流。 最佳答案 另一种选择是使用长轮询方法。那就是尝试像下面这样的东西(Python中的代码,因为这是我最熟悉的,但go应该非常相似)。这没有经过测试,只是为了让您

debugging - 无法调试二进制文件 - "could not launch process: could not find .debug_line section in binary"

我正在使用GoLandIDE,我有以下简单代码:packagemainimport("fmt""time")funcmain(){start:=time.Now()time.Sleep(2*time.Second)elapsed:=time.Since(start)fmt.Println("elapsed:%s",elapsed)}当我运行它时,它工作正常并且我看到了输出。当我在其中一行中放置断点时,我收到以下错误:GOROOT=/usr/local/go#gosetupGOPATH=/root/go#gosetup/usr/local/go/bin/gobuild-o/tmp/___

go - Go 中的 grpc header /cookie

我想在服务器应用程序上做一个可以被GoAPP和Java应用程序调用的地方。由于某种原因,有一个cookie认证和oAuth机制,所以我想将一个Go应用程序设置为Auth微服务以进行认证。由于GRPC是建立在HTTP2之上的,所以headers和cookies在协议(protocol)上。但是我没有找到rpc发生时如何携带header和cookie,Go实现的,在GitHub上我只找到了JAVA-标题的实现:https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/heade

GOPL : Binary assignment operator "saves us from re-evaluation?"

Go编程语言(GOPL)的第36页包含以下内容:Eachofthearithmeticandbitwisebinaryoperatorshasacorrespondingassignmentoperatorallowing,forexample,thelaststatementtoberewrittenascount[x]*=scalewhichsavesusfromhavingtorepeat(andre-evaluate)theexpressionforthevariable.我不明白关于重新评估的部分。作者的意思是这样吗count[x]=count[x]*scale和count[

go - 如何从 Go 客户端获取 gRPC 服务器 IP

我使用docker-compose或kubernetes来部署我的gRPC服务器,并希望在go客户端中获取服务器IP地址。gRPC库是否提供获取服务端IP的方法?顺便说一句,这里的场景是我想记录服务器ip以检查nginx、envoy和其他L7负载平衡器是否做出正确的路由决策。 最佳答案 这是一个有趣的问题,因为您在创建客户端之前就已经了解了gRPC服务器地址conn,err:=grpc.Dial(*serverAddr)iferr!=nil{...}deferconn.Close()client:=pb.NewRouteGuideC

docker - 如何在支持 golang 的 gRPC 中减小 docker 镜像的大小?

我有一些服务器和客户端使用gRPC/golang进行通信。现在我想容器化我的应用程序,但是包含goland执行和grpc支持的docker镜像的大小更大(超过1GB)。我想减小docker图像的大小。所需的golang版本为1.9及更高版本。这是给出的Dockerfile脚本。如果有其他方法请建议。FROMgolang:1.11RUNapt-getupdate&&\apt-get-yinstallgitunzipbuild-essentialautoconflibtoolRUNgitclonehttps://github.com/google/protobuf.git&&\cdprot

http - gRPC 服务器错误处理程序 golang

我想了解有关golang、gRPC和protobuf的良好实践。我正在实现以下gRPC服务serviceMyService{rpcdosomethink(model.MyModel)returns(model.Model){option(google.api.http)={post:"/my/path"body:""};}}我编译了protobufs。事实上,protobuf给了我们一个从http到grpc的httpproxy。实现该服务的代码:import"google.golang.org/grpc/status"func(Abcd)Dosomethink(ccontext.Con

go - 为什么 binary.Size() 返回 (-1)?

代码片段是这样的:packagemainimport("fmt""encoding/binary""reflect")const(commandLen=1bufLenint=4)funcmain(){fmt.Printf("%v%v\n",reflect.TypeOf(commandLen),reflect.TypeOf(bufLen))fmt.Printf("%d%d",binary.Size(commandLen),binary.Size(bufLen))}输出是:intint-1-1我认为由于commandLen和bufLen的类型是int,并且来自“Programminging