Memory Channel有很大的丟數(shù)據(jù)風險,而且容量一般,F(xiàn)ile Channel雖然能緩存更多的消息,但如果緩存下來的消息還沒寫入Sink,此時Agent出現(xiàn)故障則File Channel中的消息一樣不能被繼續(xù)使用,直到該Agent恢復。
而Kafka Channel容量大,容錯能力強。
有了Kafka Channel可以在日志收集層只配置Source組件和Kafka組件,不需要再配置Sink組件,減少了日志收集層啟動的進程數(shù),有效降低服務器內(nèi)存、磁盤等資源的使用率。
而日志匯聚層,可以只配置Kafka Channel和Sink,不需要再配置Source。
kafka.consumer.auto.offset.reset,當Kafka中沒有Consumer消費的初始偏移量或者當前偏移量在Kafka中不存在(比如數(shù)據(jù)已經(jīng)被刪除)情況下 Consumer選擇從Kafka拉取消息的方式,earliest表示從最早的偏移量開始拉取,latest表示從最新的偏移量開始拉取,none表示如果沒有發(fā)現(xiàn)該 Consumer組之前拉取的偏移量則拋出異常。