如何使用过滤条件从KAFKA主题使用/读取消息

时间:2019-09-16 19:09:42

标签: c# apache-kafka kafka-consumer-api

我有一个主题不同的消息。但是我只需要消耗某些消息,而不考虑消息发布的顺序。我需要在邮件的特定字段/属性上应用数据过滤条件。 JSON消息的文件名元素类似“ XXXX.txt”。只需说在类似传统数据库的条件下消费消息即可。

1 个答案:

答案 0 :(得分:0)

  

。我需要使用C#客户端

那么您唯一的选择就是像平常一样进行订阅和轮询,为您的条件添加一个if语句

Confluent consumer example借来的摘录

 // TODO: build consumer that reads string messages 
consumer.Subscribe(topics);
... 
while (true) {
    var consumeResult = consumer.Consume(cancellationToken);
    string value = consumeResult.Value;

    // TODO: parse string value to JSON object using your favorite JSON library 
    // Add your condition 
    if (jsonObj["file-name"].Equals("XXXX.txt"))
    {
        Console.WriteLine($"Received message at {consumeResult.TopicPartitionOffset}: {value}");
    }

关于JSON解析器,您可以创建一个Dictionary或一个强类型的类,但是本示例假定使用字典。 How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?

  

与发布消息的顺序无关。

与任何消费者一样,可以保证在分区内订购