我有一个主题不同的消息。但是我只需要消耗某些消息,而不考虑消息发布的顺序。我需要在邮件的特定字段/属性上应用数据过滤条件。 JSON消息的文件名元素类似“ XXXX.txt”。只需说在类似传统数据库的条件下消费消息即可。
答案 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?
与发布消息的顺序无关。
与任何消费者一样,可以保证在分区内订购