using Confluent.Kafka; using System; using System.Collections.Generic; using System.Text; namespace VOL.Core.KafkaManager.IService { public interface IKafkaConsumer : IDisposable { /// /// 订阅回调模式-消费(持续订阅) /// /// 回调函数,若配置为非自动提交(默认为否),则通过回调函数的返回值判断是否提交 /// 主题 void Consume(Func, bool> Func, string Topic); /// /// 批量订阅回调模式-消费(持续订阅) /// /// 回调函数,若配置为非自动提交(默认为否),则通过回调函数的返回值判断是否提交 /// 主题集合 void ConsumeBatch(Func, bool> Func, List Topics); /// /// 批量消费模式-单次消费(消费出当前Kafka缓存的所有数据,并持续监听 300ms,如无新数据生产,则返回(最多一次消费 100条) /// /// 主题 /// 持续监听时间,单位ms 默认值:300ms /// 最多单次消费行数 默认值:100行 /// 待消费数据 List> ConsumeOnce(string Topic, int TimeOut = 300, int MaxRow = 100); /// /// 单笔消费模式-单行消费 /// /// 主题 /// 持续监听时间,单位ms 默认值:300ms /// 待消费数据 ConsumeResult ConsumeOneRow(string Topic, int TimeOut = 300); } }