問題描述
根據(jù)Azure Event Hub示例文檔典勇,[將 Apache Flink 與適用于 Apache Kafka 的 Azure 事件中心配合使用],配置好 consumer.config 文件后叮趴,為什么不能自動消費Event Hub中存儲的舊數(shù)據(jù)呢割笙?
如果發(fā)送端(生產(chǎn)者)沒有任何消息輸出,這消費端的信息也是一片空白眯亦,如:
問題分析
在 Kafka 中伤溉,每當(dāng)消費者組內(nèi)的消費者查找不到所記錄的消費位移或發(fā)生位移越界時,就會根據(jù)消費者客戶端參數(shù) auto.offset.reset 的配置來決定從何處開始進(jìn)行消費妻率,這個參數(shù)的默認(rèn)值為 “l(fā)atest” 乱顾。
auto.offset.reset 的值可以為 earliest、latest 和 none 宫静。關(guān)于 earliest 和 latest 的解釋走净,真實情況如下所示:
- earliest :當(dāng)各分區(qū)下存在已提交的 offset 時,從提交的 offset 開始消費孤里;無提交的 offset 時伏伯,從頭開始消費。
- latest :當(dāng)各分區(qū)下存在已提交的 offset 時捌袜,從提交的 offset 開始消費说搅;無提交的 offset 時,消費該分區(qū)下新產(chǎn)生的數(shù)據(jù)虏等。
- none :topic 各分區(qū)都存在已提交的 offset 時弄唧,從 offset 后開始消費;只要有一個分區(qū)不存在已提交的offset博其,則拋出異常
使用Flink消費端以Kafka方式消費Event Hub中的事件套才,當(dāng)消費端第一次運行時,因為默認(rèn)配置慕淡,所以消費端只消費新產(chǎn)生的數(shù)據(jù)背伴。
如果需要消費舊的數(shù)據(jù),需要在 consumer.config 中添加 **auto.offset.reset = earliest 峰髓。 **
修改后的測試效果為:
參考資料
Flink消費kafka的offset設(shè)置:https://blog.csdn.net/pageniao/article/details/124279617
Seeking to a Specific Offset:https://docs.spring.io/spring-kafka/docs/current/reference/html/#seek
當(dāng)在復(fù)雜的環(huán)境中面臨問題傻寂,格物之道需:濁而靜之徐清,安以動之徐生携兵。 云中疾掰,恰是如此!
分類: 【Azure 事件中心】
標(biāo)簽: 事件中心 Azure Event Hub, Kafka Offset