问题标签 [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.

0 投票
2 回答
3700 浏览

grpc - grpc-go 中的会话和远程 IP 地址

在 grpc-go 中,实现服务时,服务接口定义的方法只包含ContextRequest。从源代码来看Context,它很简单

所以我想知道是否可以获取一些元数据(包括远程 IP 地址和其他数据)来维护会话。

谢谢。

0 投票
1 回答
2558 浏览

debugging - 如何调试 gRPC-Go 服务?

使用gRPC-Go无疑是构建弹性、高性能和可扩展的分布式系统的好方法。我不太明白如何实际调试用它编写的服务。另外,HTTP/2 是唯一支持的有线协议吗?

0 投票
3 回答
7734 浏览

go - 如何在 Golang gRPC 中获取客户端 IP 地址和用户代理?

我设置了一系列 gRPC 请求和响应,它们都可以正常工作,但是当我尝试获取调用我的 gRPC API 的客户端 IP 地址和用户代理时,我被卡住了。

我阅读了 Go gRPC 文档和其他资源,但没有找到太多有价值的信息。他们中很少有人在 Golang 中谈论 gRPC。

在设置 gRPC API 时,我是否应该设置一个键值来将 IP 地址存储在上下文中?

0 投票
1 回答
2065 浏览

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 多了三个字段,运行程序会报错,像这样:

当我删除这三个字段时,程序运行正常。这三个字段是自动生成的,我有很多结构。我该怎么办?谢谢!

0 投票
1 回答
363 浏览

go - 为 gRPC 服务配置 Envoy 代理“重试”机制

我正在尝试为用 Go 编写的 gRPC 服务配置 Envoy 代理“重试”机制。gRPC 重试目前仅支持响应标头中的 gRPC 状态代码。有没有办法在标头中发送状态代码以便 Envoy 可以拦截?

0 投票
1 回答
488 浏览

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价值处理?

0 投票
2 回答
14883 浏览

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但显然它没有。

0 投票
1 回答
262 浏览

grpc - grpc.Dial() 是否创建 http/2 连接?

我对 grpc 和 http/2 有点困惑。据我了解,grpc 是一个 RPC 框架,可以使用不同类型的传输,http/2 只是其中一种传输。

在 golang 中,grpc.Dial()将创建与服务器的连接,并且 grpc 服务器由grpc#Server.Serve(). 那么这个联系是什么?那是 http/2 连接吗?

非常感谢您的帮助。

0 投票
1 回答
2967 浏览

go - 将内部 go struct 数组转换为 protobuf 生成的指针数组

我正在尝试将内部类型转换为 protobuf 生成的类型,但无法获取要转换的数组。我是新手,所以我不知道所有可以提供帮助的方法。但这是我的尝试。运行此代码时,我得到

恐慌:运行时错误:无效的内存地址或 nil 指针取消引用 [信号 SIGSEGV:分段违规代码 = 0x1 地址 = 0x8 pc = 0x86c724]

以及许多其他字节数据。我想知道将内部结构转换为 protobufs 的最佳方法是什么。我认为 protobuf 生成的代码是指针最麻烦。

原型定义

去代码

0 投票
1 回答
435 浏览

grpc - grpc-go 如何处理取消示例

我正在查看 grpc 示例,但我不明白这个示例。有人可以向我解释吗?

该示例位于:https ://github.com/grpc/grpc-go/blob/master/examples/features/cancellation/server/main.go#L52

有人可以解释一下这个执行的过程,它是怎么调用的?谢谢。