Memory Channel有很大的丢数据风险,而且容量一般,File Channel虽然能缓存更多的消息,但如果缓存下来的消息还没写入Sink,此时Agent出现故障则File Channel中的消息一样不能被继续使用,直到该Agent恢复。
而Kafka Channel容量大,容错能力强。
有了Kafka Channel可以在日志收集层只配置Source组件和Kafka组件,不需要再配置Sink组件,减少了日志收集层启动的进程数,有效降低服务器内存、磁盘等资源的使用率。
而日志汇聚层,可以只配置Kafka Channel和Sink,不需要再配置Source。
kafka.consumer.auto.offset.reset,当Kafka中没有Consumer消费的初始偏移量或者当前偏移量在Kafka中不存在(比如数据已经被删除)情况下 Consumer选择从Kafka拉取消息的方式,earliest表示从最早的偏移量开始拉取,latest表示从最新的偏移量开始拉取,none表示如果没有发现该 Consumer组之前拉取的偏移量则抛出异常。