问题标签 [grpc-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grpc - grpc-go 中的会话和远程 IP 地址
在 grpc-go 中,实现服务时,服务接口定义的方法只包含Context
和Request
。从源代码来看Context
,它很简单
所以我想知道是否可以获取一些元数据(包括远程 IP 地址和其他数据)来维护会话。
谢谢。
go - 如何在 Golang gRPC 中获取客户端 IP 地址和用户代理?
我设置了一系列 gRPC 请求和响应,它们都可以正常工作,但是当我尝试获取调用我的 gRPC API 的客户端 IP 地址和用户代理时,我被卡住了。
我阅读了 Go gRPC 文档和其他资源,但没有找到太多有价值的信息。他们中很少有人在 Golang 中谈论 gRPC。
在设置 gRPC API 时,我是否应该设置一个键值来将 IP 地址存储在上下文中?
go - protoc-gen-go struct xxx 隐蔽到 map[string]interface{}
.proto文件生成的.pb.go文件中的struct有三个额外的字段和一些其他的东西。像这样:
将此struct转换为json时,如果一个字段为空,则该字段不会出现在 json 中。现在我知道可以使用jsonpb.Marshaler来完成。
现在,我将struct转换为map[string]interface{},将其放入 InfluxDB。我必须将 struct 转换为 map[string]interface{}。NewPoint需要的函数。像这样:
我在 go 中使用了 structs.Map(value)函数,转换后的 map 多了三个字段,运行程序会报错,像这样:
当我删除这三个字段时,程序运行正常。这三个字段是自动生成的,我有很多结构。我该怎么办?谢谢!
go - 为 gRPC 服务配置 Envoy 代理“重试”机制
我正在尝试为用 Go 编写的 gRPC 服务配置 Envoy 代理“重试”机制。gRPC 重试目前仅支持响应标头中的 gRPC 状态代码。有没有办法在标头中发送状态代码以便 Envoy 可以拦截?
go - 如何将 row.Scan() int32 放入 Golang gRPC protobuf Enum 字段?
然后将 SQL 行扫描到代理 protobuf 结构中:
该权限类型存储value = 0
为默认类型的简单 MariaDB INT()。所以,我不能直接扫描它。因此Type int32
,在尝试将临时结构字段映射到 protobuf 结构之后,我在哪里创建了临时结构并将行扫描到该临时结构中,但没有运气。当我想将 MariaDB 字符串值扫描到 []byte 类型字段时,我遇到了类似的问题,但我用我的 temp struct 解决了这个问题[]byte(tmp.UUID)
。
当使用非标准 protobuf 字段类型时,将数据库 ROW(单行)扫描到 protubuf 消息中的常见模式是什么?
编辑:是否应该有一些额外的0
价值处理?
go - grpc:收到的消息大于最大值(8653851 与 4194304)
问题:
在 grpc 中接收消息时出现此错误:
rpc error: code = ResourceExhausted desc = grpc: received message larger than max (8653851 vs. 4194304)
我尝试了什么:
我提供了增加要接收的消息大小的选项,但它仍然给出了相同的错误,这意味着这个最大大小的设置不起作用:
注释:
默认限制是1024 * 1024 * 4 = 4194304
错误消息中显示的限制。我期待这个限制增加,1024 * 1024 * 12 = 12582912
但显然它没有。
grpc - grpc.Dial() 是否创建 http/2 连接?
我对 grpc 和 http/2 有点困惑。据我了解,grpc 是一个 RPC 框架,可以使用不同类型的传输,http/2 只是其中一种传输。
在 golang 中,grpc.Dial()
将创建与服务器的连接,并且 grpc 服务器由grpc#Server.Serve()
. 那么这个联系是什么?那是 http/2 连接吗?
非常感谢您的帮助。
go - 将内部 go struct 数组转换为 protobuf 生成的指针数组
我正在尝试将内部类型转换为 protobuf 生成的类型,但无法获取要转换的数组。我是新手,所以我不知道所有可以提供帮助的方法。但这是我的尝试。运行此代码时,我得到
恐慌:运行时错误:无效的内存地址或 nil 指针取消引用 [信号 SIGSEGV:分段违规代码 = 0x1 地址 = 0x8 pc = 0x86c724]
以及许多其他字节数据。我想知道将内部结构转换为 protobufs 的最佳方法是什么。我认为 protobuf 生成的代码是指针最麻烦。
原型定义
去代码
grpc - grpc-go 如何处理取消示例
我正在查看 grpc 示例,但我不明白这个示例。有人可以向我解释吗?
该示例位于:https ://github.com/grpc/grpc-go/blob/master/examples/features/cancellation/server/main.go#L52
有人可以解释一下这个执行的过程,它是怎么调用的?谢谢。