C#中Kafka消费者订阅多主题时如何获取单条消息的所属主题
多主题监听时获取消息所属Kafka主题的方法
你使用的Confluent.Kafka .NET客户端中,Consume()方法返回的ConsumeResult<TKey, TValue>实例直接内置了消息的元数据属性,直接访问Topic属性即可获取当前消息所属的主题名称,不需要从Message属性中读取。
修改后的参考代码如下:
consumer.Subscribe(new string[] {"topic1", "topic2"}); var cr = consumer.Consume(); // 直接读取ConsumeResult的Topic属性即可拿到主题名 Console.Write($"所属主题: {cr.Topic}\r\nkey: {cr.Message.Key}\r\nvalue: {cr.Message.Value}");
额外说明:除了主题名称之外,消息对应的分区信息、偏移量等Kafka服务端产生的元数据,也都存放在ConsumeResult的根属性中,对应Partition、Offset属性。
内容的提问来源于stack exchange,提问作者Robert Lewit
相关产品推荐
相关产品推荐

