Kubernetes Kubemq go缺失标记通过GRPC响应查询

Kubernetes Kubemq go缺失标记通过GRPC响应查询,kubernetes,microservices,message-queue,grpc-go,Kubernetes,Microservices,Message Queue,Grpc Go,我正在开发一个通过集群中的kubemq进行交互的微服务。发送带有一些标记的查询响应(通过GRPC协议)时: err:=client.NewResponse()。 SetRequestId(query.Id)。 SetResponseTo(query.ResponseTo)。 setExecuteAt(time.Now())。 SetMetadata(“这是一个响应”)。 SetBody([]字节(“收到您的查询,可以开始了”))。 SetTags(映射[string]字符串{“key0”:“va

我正在开发一个通过集群中的kubemq进行交互的微服务。发送带有一些标记的查询响应(通过GRPC协议)时:

err:=client.NewResponse()。
SetRequestId(query.Id)。
SetResponseTo(query.ResponseTo)。
setExecuteAt(time.Now())。
SetMetadata(“这是一个响应”)。
SetBody([]字节(“收到您的查询,可以开始了”))。
SetTags(映射[string]字符串{“key0”:“val0”,“key1”:“val1”})。
发送(ctx)
我发现我在接收器响应处没有看到它们:

响应,错误:=client.NewQuery()。 SetId(“某些查询id”)。 设置频道(频道)。 SetMetadata(“一些元数据”)。 SetBody([]字节(“你好,kubemq-发送查询,请回复”))。 设置超时(1*时间秒)。 发送(ctx) fmt.Println(“收到响应标签:”,响应.Tags) 输出显示:

Response Tags Received: map[]
所以response.Tags是空的。然后我看了一下官方查询示例。注意,它使用的是rest协议

client,err:=kubemq.NewClient(ctx,
kubemq.WithUri(“http://localhost:9090"),
kubemq.WithClientId(“测试查询客户端id”),
kubemq.WithTransportType(kubemq.TransportTypeRest))
在我向查询响应中添加了一些标记(如本文的第一段代码所示)之后,它在响应中正确地显示了标记,但当我将协议切换到grpc时:

kubemq.WithAddress(“localhost”,50000),
//kubemq.WithUri(“http://localhost:9090"),
kubemq.WithClientId(“测试查询客户端id”),
kubemq.WithTransportType(kubemq.TransportTypeGRPC))
//kubemq.WithTransportType(kubemq.TransportTypeRest))
它开始停止在响应中显示标记

我在这里做了一些更新的kubemqgo示例
说明这个问题。有两个目录查询标签rest,查询标签grpc,还有查询是我用作源代码的官方查询示例。客户端协议只有一些修改。请向我解释,为什么使用grpc时不发送标签?可能是我在文档中遗漏了一些协议限制?

这是一个bug,我发布了一个问题,并且很快得到了修复。必须更新到1.3.3版才能避免此问题

因为kubemq不是开源软件,所以很难诊断这是否是一个bug,或者是否按预期使用。他们的网站上没有架构描述,也没有关于如何调试kubemq的提示。也许一个不同的产品会是一个更好的选择。@Thomas谢谢你告诉我kubemq服务器端不是开源的,我错过了这一点。你认为哪一个可以替代?(我们刚刚拒绝了rabbitmq)这是一个非常广泛的问题,答案在很大程度上取决于您的用例和环境。很抱歉,我不能在stackoverflow问题的范围内回答这个问题。@Thomas我以为这是kubemq服务器的源代码。不是吗?那是客户端库,不是服务器。