Druid 加載 Kafka 流數據 KafkaSupervisorIOConfig 配置信息表

可用的字段和配置信息,請參考表格。


需要注意的是配置的段的定義爲爲: ioConfig

字段(Field) 類型(Type) 描述(Description) 是否必須(Required)
topic String 從 Kafka 中讀取數據的 主題(topic)名。你必須要指定一個明確的 topic。例如 topic patterns 還不能被支持。 Y
inputFormat Object inputFormat 被指定如何來解析處理數據。請參考 the below section 來了解更多如何指定 input format 的內容。 Y
consumerProperties Map<String, Object> 傳遞給 Kafka 消費者的一組屬性 map。這個必須包含有一個 bootstrap.servers 屬性。這個屬性的值爲: <BROKER_1>:<PORT_1>,<BROKER_2>:<PORT_2>,... 這樣的服務器列表。針對使用 SSL 的鏈接: keystore, truststorekey 可以使用字符串密碼,或者使用 Password Provider 來進行提供。 Y
pollTimeout Long Kafka 消費者拉取數據等待的時間。單位爲:毫秒(milliseconds)The length of time to wait for the Kafka consumer to poll records, in N(默認=100))
replicas Integer 副本的數量, 1 意味着一個單一任務(無副本)。副本任務將始終分配給不同的 workers,以提供針對流程故障的恢復能力。 否(no)(默認值:1)
taskCount Integer 在一個 replica set 集中最大 reading 的數量。這意味着讀取任務的最大的數量將是 taskCount * replicas, 任務總數(reading + publishing)是大於這個數值的。請參考 Capacity Planning 中的內容。如果 taskCount > {numKafkaPartitions} 的話,總的 reading 任務數量將會小於 taskCount 。 N(默認=1))
taskDuration ISO8601 Period 任務停止讀取數據並且將已經讀取的數據發佈爲新段的時間週期 N(默認=PT1H)
startDelay ISO8601 Period supervisor 開始管理任務之前的等待時間週期。 N(默認=PT1S)
period ISO8601 Period supervisor 將要執行管理邏輯的時間週期間隔。請注意,supervisor 將會在一些特定的事件發生時進行執行(例如:任務成功終止,任務失敗,任務達到了他們的 taskDuration)。因此這個值指定了在在 2 個事件之間進行執行的最大時間間隔週期。 N(默認=PT30S)
useEarliestOffset Boolean 如果 supervisor 是第一次對數據源進行管理,supervisor 將會從 Kafka 中獲得一系列的數據偏移量。這個標記位用於在 Kafka 中確定最早(earliest)或者最晚(latest)的偏移量。在通常使用的情況下,後續的任務將會從前一個段結束的標記位開始繼續執行,因此這個參數只在 supervisor 第一次啓動的時候需要。 否(no)(默認值:false)
completionTimeout ISO8601 Period 聲明發布任務爲失敗並終止它 之前等待的時間長度。如果設置得太低,則任務可能永遠不會發布。任務的發佈時刻大約在 taskDuration (任務持續)時間過後開始。 N(默認=PT30M)
lateMessageRejectionStartDateTime ISO8601 DateTime 用來配置一個時間,當消息時間戳早於此日期時間的時候,消息被拒絕。例如我們將這個時間戳設置爲 2016-01-01T11:00Z 然後 supervisor 在 2016-01-01T12:00Z 創建了一個任務,那麼早於 2016-01-01T11:00Z 的消息將會被丟棄。這個設置有助於幫助避免併發(concurrency)問題。例如,如果你的數據流有延遲消息,並且你有多個需要在同一段上操作的管道(例如實時和夜間批處理攝取管道)。 N(默認=none)
lateMessageRejectionPeriod ISO8601 Period 配置一個時間週期,當消息時間戳早於此週期的時候,消息被拒絕。例如,如果這個參數被設置爲 PT1H 同時 supervisor 在 2016-01-01T12:00Z 創建了一個任務,那麼所有早於 2016-01-01T11:00Z 的消息將會被丟棄。個設置有助於幫助避免併發(concurrency)問題。例如,如果你的數據流有延遲消息,並且你有多個需要在同一段上操作的管道(例如實時和夜間批處理攝取管道)。請注意 lateMessageRejectionPeriod 或者 lateMessageRejectionStartDateTime 2 個參數只能指定一個,不能同時賦值。 N(默認=none)
earlyMessageRejectionPeriod ISO8601 Period 用來配置一個時間週期,當消息時間戳晚於此週期的時候,消息被拒絕。例如,如果這個參數被設置爲 PT1H,taskDuration 也被設置爲 PT1H,然後 supervisor 在 2016-01-01T12:00Z 創建了一個任務,那麼所有晚於 2016-01-01T14:00Z 的消息丟會被丟棄,這是因爲任務的執行時間爲 1 個小時,earlyMessageRejectionPeriod 參數的設置爲 1 個小時,因此總計需要等候 2 個小時。 注意: 任務有時候的執行時間可能會超過任務 taskDuration 參數設定的值,例如,supervisor 被掛起的情況。如果設置 earlyMessageRejectionPeriod 參數過低的話,在任務的執行時間超過預期的話,將會有可能導致消息被意外丟棄。 N(默認=none)

如上面表格的配置信息,我們可以對 Kafka 中的配置進行一些調整來滿足特定的項目消息需求。

 

 

 

如果你對需要調整的默認值不是非常瞭解和清楚的話,可以使用默認值,通常默認值不是最優的,但是可能是能夠保障能正確工作的最低配置。

 



本文分享自微信公衆號 - CWIKIUS(CWIKIUS)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章