消费者不拉卡夫卡消息
Consumer not pulling Kafka message
我们有一些用c#和go语言开发的微服务。我们使用 confluent-kafka 进行消息传递并面临一个问题:Go 服务能够使用从所有其他服务(无论是来自 go 还是 c#/.net 微服务)发布的消息。但是 .net 微服务不是从 go 微服务而是从 .net 微服务获取消息。
我们在 windows 平台上使用 confluent-kafka 作为 kafka 服务器和 .net 客户端。在 go 中,我们正在使用 kafka-go 库 (https://github.com/segmentio/kafka-go)
注意:在 go 中,kafka-go 库允许将消息发布为字节数组。而在 .net 中,我们以纯文本形式发布消息。我不确定 .net 服务以字节数组形式使用从 go-services 发布的消息是否有问题。
我可以在 kafka-tool 2.0 中看到从 go-services 发布的消息。
预期行为是 .net 服务能够 pull/consume 从 go-micro-services 发布的消息。
找到根本原因并解决。问题是 dot net 服务中没有设置密钥解串器,dotnet 发布者没有设置 kafka 消息的密钥,但是 go 发布者正在设置密钥。由于 .net 中没有设置密钥反序列化器,他们收到了 ConsumerError。现在密钥反序列化器设置为 .net 消费者并且问题消失了。
我们有一些用c#和go语言开发的微服务。我们使用 confluent-kafka 进行消息传递并面临一个问题:Go 服务能够使用从所有其他服务(无论是来自 go 还是 c#/.net 微服务)发布的消息。但是 .net 微服务不是从 go 微服务而是从 .net 微服务获取消息。
我们在 windows 平台上使用 confluent-kafka 作为 kafka 服务器和 .net 客户端。在 go 中,我们正在使用 kafka-go 库 (https://github.com/segmentio/kafka-go)
注意:在 go 中,kafka-go 库允许将消息发布为字节数组。而在 .net 中,我们以纯文本形式发布消息。我不确定 .net 服务以字节数组形式使用从 go-services 发布的消息是否有问题。 我可以在 kafka-tool 2.0 中看到从 go-services 发布的消息。
预期行为是 .net 服务能够 pull/consume 从 go-micro-services 发布的消息。
找到根本原因并解决。问题是 dot net 服务中没有设置密钥解串器,dotnet 发布者没有设置 kafka 消息的密钥,但是 go 发布者正在设置密钥。由于 .net 中没有设置密钥反序列化器,他们收到了 ConsumerError。现在密钥反序列化器设置为 .net 消费者并且问题消失了。