更新時間:2022年07月29日10時20分 來源:傳智教育 瀏覽次數(shù):
在之前的Flume入門使用中,配置的采集方案是通過唯一一個Sink作為接收器來接收后續(xù)需要的數(shù)據(jù),但有時會出現(xiàn)當(dāng)前Sink故障或者數(shù)據(jù)收集請求量較大的情況,這時候單一的Sink配置可能就無法保證Flume開發(fā)的可靠性。為此,F(xiàn)lume提供了Flume Sink Processors(Flume Sink處理器)來解決上述問題。
Sink處理器允許開發(fā)者定義一個Sink groups(接收器組),將多個Sink分組到一個實(shí)體中,這樣Sink處理器就可以通過組內(nèi)的多個Sink為服務(wù)提供負(fù)載均衡功能,或者是在某個Sink出現(xiàn)短暫故障的時候?qū)崿F(xiàn)從一個Sink到另一個Sink的故障轉(zhuǎn)移。
什么是負(fù)載均衡?負(fù)載均衡接收處理器(Load balancing sink processor)提供了在多個Sink上進(jìn)行負(fù)載均衡流量的功能,它維護(hù)了一個活躍的Sink索引列表,必須在其上分配負(fù)載。Load balancing sink processor支持使用round_robin,但可以通過配置進(jìn)行覆蓋,還支持繼承AbstractSinkSelector的自定義類來自定義選擇機(jī)制。
在使用時,選擇器(selector)會根據(jù)配置的選擇機(jī)制挑選下一個可用的Sink并進(jìn)行調(diào)用。對于round_robin和random兩種選擇機(jī)制,如果所選Sink無法收集event,則處理器會通過其配置的選擇機(jī)制選擇下一個可用Sink。這種實(shí)現(xiàn)方案不會將失敗的Sink列入黑名單,而是繼續(xù)樂觀地嘗試每個可用的Sink。如果所有Sink都調(diào)用失敗,則選擇器將故障傳播到接收器運(yùn)行器(sink runner)。
如果啟用了backoff屬性,則Sink處理器會將失敗的Sink列入黑名單。當(dāng)超時結(jié)束時,如果Sink仍然沒有響應(yīng),則超時會呈指數(shù)級增加,以避免在無響應(yīng)的Sink上長時間等待時卡住。在禁用backoff功能的情況下,在round_robin機(jī)制下,所有失敗的Sink將被傳遞到Sink隊(duì)列中的下一個Sink后,因此不再均衡。
北京校區(qū)