草庐IT

grpc-precompiled-binaries

全部标签

parsing - binary.Read() 未在结构中产生预期值

我正在尝试制作一个MOBI文件解析器,但在尝试使用binary.Read()将某些二进制文件解析为结构时遇到了一些问题。我认为这是一个对齐问题,但我不知道为什么我没有得到预期值。我已经通过libmobi运行.mobi文件来测试我的代码输出,并检查了.mobi的二进制文件以验证我没有疯并且libmobi代码没有做一些奇怪的事情(它是不是)。这是一个精简的例子:packagemainimport("bytes""encoding/binary""fmt")typeHeaderstruct{Type[4]byteCreator[4]byteUiduint32Nextuint32RecordC

go - 在 Go 中查找 gRPC 调用的客户端名称

我使用protobufs来定义我的模型和gRPC服务,并为Go(.pb.go)生成原型(prototype)。当我对服务进行gRPC调用时,我想在服务器中找出调用服务器API的客户端/应用程序的名称。API中的上下文参数在这里有什么帮助吗? 最佳答案 您可以使用WithUserAgent拨号选项以在客户端上设置自定义用户代理字符串。要在服务器端检索用户代理,请参阅thisquestion.它没有完全回答,但您可以打印元数据映射并查看用户代理如何存储在元数据中。然后在那里发布你的发现:)

go - golang中的并发模型grpc服务器

我在golang中创建了一个示例gRPC客户端和服务器(使用protobufs)。我了解golang中的并发模型。但是,我试图了解服务器中的并发模型,该服务器接受来自同一客户端(客户端的多个goroutine)/多个客户端的并行请求。更具体地说:当一个新的gRPC调用到来时,服务器是否创建一个新的goroutine?这些协程共享哪些数据?grpcServer.Serve是否为跨goroutine共享的数据设置边界,即之前设置的所有内容都共享?(我正在考虑Java中的线程,其中线程共享全局数据) 最佳答案 WhenanewgRPCca

go - GRPC 消息结构

我正在将遗留应用程序(一些微服务和单体)迁移到使用GRPC。整个代码库目前在GO中。我已经开始为我的消息建模,它们看起来与我在应用程序代码中使用的结构非常相似。我将相同的对象定义两次似乎很奇怪,但使用消息对象作为核心结构也很奇怪。似乎我会有很多内存密集型数据编码。下面是消息和结构的示例,以及它们的相似程度。是否有任何关于决定如何为我的消息建模的建议/最佳实践?它们应该与我的核心结构保持一致吗?我是否应该不关心所有必须从我的Golang结构到消息的编码?如果我问的是这样一个基本问题,请原谅我,因为我对ProtocolBuffer和GRPC还很陌生。消息原型(prototype)定义:me

go - grpc-通过 https : failed rpc error: code = Unavailable desc = transport is closing:

注意:这是在Kubernetes的容器中运行。我已经成功完成了这个非常简短的描述:https://knative.dev/docs/serving/samples/grpc-ping-go/成功:2019/05/0813:43:56Pinggothello-pong2019/05/0813:43:56Gotpong2019-05-0813:43:57.646935391+0000UTCm=+1.661567121但是,如果我在https的knative设置上从网关运行443,它就不起作用:dockerrun-ti--entrypoint=/clientdocker.io/{userna

go - 从 vendor 目录使用 google.golang.org/grpc 时出错

我在使用vendor目录中的google.golang.org/grpc时遇到问题,并且出现以下错误cannotuse&metadata.HeaderMD(type*"google.golang.org/grpc/metadata".MD)astype*"project1/vendor/google.golang.org/grpc/metadata".MDinargumenttogrpc.Header虽然我使用的是从我的gopath复制的必要版本的包,但我收到了错误。但是,当我从vendor中删除golang.google.org/grpc文件夹时,我的项目从gopath获取依赖项并且

rest - gRPC 服务器如何调用 REST 端点

我目前是gRPC技术的新手,并且一直在阅读它。我目前的理解是gRPC只是另一种协议(protocol),就像REST一样。现在假设我启动了一个我希望客户端使用的gRPC服务器,但在该gRPC服务器中我希望能够从外部消费者RESTfulApis获取信息(例如https://developer.riotgames.com/api-methods/)这仍然可能吗? 最佳答案 是的,这是可能的。您可以从您自己的gRPC服务代码调用其他API和服务。只需让您的客户端调用您的gRPC服务即可。然后,您的服务对外部API进行REST调用(可能使用

go - 通过特定端口发送 GRPC 通信

我正在运行一个监听特定端口的GRPC服务器(服务器A)。我希望能够向另一台服务器(服务器B)发送通信,并让服务器B记录服务器A连接的传入地址,以便它稍后可以联系服务器A。在服务器A上,我监听一个端口并创建如下上下文:lis,err:=net.Listen("tcp","0.0.0.0:6000")ctx,cancel:=context.WithTimeout(context.Background(),10000*time.Millisecond)然后像这样创建一个连接:connection,err=grpc.DialContext(ctx,server2Address,grpc.Wit

go - 这个 binary.read 如何知道何时停止?

请注意这是伪代码,我正在总结。我正在从函数内部读取一些源代码:maxKeyLen:=100*1024*1024maxValueLen:=100*1024*1024varklen,vlenuint32binary.Read(p.buffer,binary.BigEndian,&klen)ifklen>maxKeyLen{returnnil,nil,fmt.Errorf("keyexceedsmaxlen%d,got%dbytes",maxKeyLen,klen)}binary.Read在什么时候停止?因为在这之后还有另一个读物:key:=make([]byte,klen)_,err:=p

c - 为什么 binary.Read() 不能正确读取整数?

我正在尝试用Go读取一个二进制文件。基本上我有一个这样的结构:typefoostruct{Aint16Bint32C[32]byte//andsoon...}我正在从文件中读入这样的结构:fi,err:=os.Open(fname)//errorchecking,deferclose,etc.varbarfoobinary.Read(fi,binary.LittleEndian,&bar)现在,应该可以工作了,但是我得到了一些奇怪的结果。例如,当我读入结构时,我应该得到这个:A:7B:8105C://somestring但我得到的是:A:7B:531169280C://somecorr