【问题标题】:Consumer not pulling Kafka message消费者不拉 Kafka 消息
【发布时间】:2019-04-19 04:34:31
【问题描述】:

我们有一些用 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 服务能够提取/使用从 go-micro-services 发布的消息。

【问题讨论】:

  • 你的代码是什么样的?你看到了什么错误?

标签: c# go confluent-platform


【解决方案1】:

找到根本原因并解决。问题是在 dot net 服务中没有设置密钥解串器,并且 dotnet 发布者没有设置 kafka 消息的密钥,但 go 发布者正在设置密钥。由于.net 中没有设置密钥反序列化器,因此他们收到了 ConsumerError。现在密钥解串器设置为 .net 消费者并且问题消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2017-11-09
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多