Kubemq在通过GRPC响应查询时丢失了标签



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

err := client.NewResponse().
SetRequestId(query.Id).
SetResponseTo(query.ResponseTo).
SetExecutedAt(time.Now()).
SetMetadata("this is a response").
SetBody([]byte("got your query, you are good to go")).
SetTags(map[string]string{"key0":"val0","key1":"val1"}).
Send(ctx)

我发现我在接收器上看不到它们的响应:

response, err := client.NewQuery().
SetId("some-query-id").
SetChannel(channel).
SetMetadata("some-metadata").
SetBody([]byte("hello kubemq - sending a query, please reply")).
SetTimeout(1 *time.Second).
Send(ctx)
fmt.Println("Response Tags Received:",response.Tags)

输出显示:

Response Tags Received: map[]

所以回应。标记为空。然后我看了一下官方的查询示例https://github.com/kubemq-io/kubemq-go/blob/master/examples/rpc/query/main.go.注意,它使用的是休息协议

client, err := kubemq.NewClient(ctx,
kubemq.WithUri("http://localhost:9090"),
kubemq.WithClientId("test-query-client-id"),
kubemq.WithTransportType(kubemq.TransportTypeRest))

在我向查询响应添加了一些标签后(如本文的第一段代码所示(,它在响应中正确地显示了标签,但当我将协议切换到grpc:时

kubemq.WithAddress("localhost", 50000),
//  kubemq.WithUri("http://localhost:9090"),
kubemq.WithClientId("test-query-client-id"),
kubemq.WithTransportType(kubemq.TransportTypeGRPC))
//  kubemq.WithTransportType(kubemq.TransportTypeRest))

它开始停止在响应中显示标签。

我在这里做了一些更新的kubemqgo示例https://github.com/Aidamir/kubemq-go/tree/master/examples/rpc说明这个问题。有两个目录查询标签rest,查询标签grpc,还有查询是我用作源代码的官方查询示例。客户端协议只有少量修改。请解释一下,为什么使用grpc时不发送标签?文件中可能缺少一些协议限制?

这是一个错误,我发布了一个问题https://github.com/kubemq-io/kubemq-go/issues/7它很快就被修复了。您必须更新到1.3.3版本才能避免此问题。

最新更新