一、Memory Channel
- 事件将被存儲在記憶體中的具有指定大小的隊列中。
- 特點是速度快,但斷電丢失資料。
- 非常适合那些需要高吞吐量但是可以容忍極端情況下會丢失資料的場景下。
二、JDBC Channel
- 了解,一般不用
- 事件被持久存儲在可靠的資料庫中。
- 提供較好的效率和可靠性可恢複性。
- 目前支援嵌入式的Derby資料庫。
三、File Channel
- 事件将被存儲在磁盤中的檔案中。
- 特點是速度慢,但斷電不會丢失資料。
- 非常适合那些需要高可靠性,可恢複,但性能要求不高的場景。
四、Spillable Memory Channel
- 可溢寫的記憶體通道。
- 需要同時配置記憶體和磁盤,優先記憶體來實作通道,在突發的大量資料到來時,記憶體通道被占滿,此時會将多出來的資料溢寫到磁盤中,保證不會丢失資料。
- 相當于結合了記憶體通道和檔案通道的優點,平常可以基于記憶體提供良好的效率,在資料突增時,可以啟用檔案,這樣即使性能有下降,但不至于失敗。
- 這個通道,官方不建議用在生産環境下。
五、Custom Channel
- 如果以上内置的Channel都不能滿足需求,可以自己開發Channel.
- 按照Flume要是寫一個類實作相應接口。
- 将類打成jar放置到flume的lib目錄下。
- 在配置檔案中通過類的全路徑名加載Channel。 5. Custom Channel