我們可以從上面的ResultHandler類的complete方法開始看,具體可以參見上面注釋,總結(jié)起來就是如下幾步
- 取消當(dāng)前ResultHandler對象的超時(shí)定時(shí)任務(wù)
- 調(diào)用StreamRecordQueueEntry的complete方法將成員變量completedElements賦值
- 判斷OrderedStreamElementQueue隊(duì)列的隊(duì)頭元素StreamRecordQueueEntry的completedElements成員變量是不是不為空
- 第3步不為空,則調(diào)用OrderedStreamElementQueue隊(duì)列的emitCompletedElement方法移除隊(duì)列的頭元素StreamElementQueueEntry并調(diào)用emitResult方法真正向下游吐出數(shù)據(jù)
5、flinksql自定義AsyncLookupFunction通常flinksql使用外部的數(shù)據(jù)源都需要引入一個(gè)flinksql-connector-xx這種jar包,比如我們想以kafka為流表join一個(gè)redis的維表,那么這時(shí)候查詢r(jià)edis的維表,通常使用的就是lookup join 。但是網(wǎng)上提供的例子基本都是同步的lookup join,在有些場景下為了提高吞吐就需要使用異步的lookup join 。詳細(xì)實(shí)現(xiàn)可以直接看代碼:https://gitee.com/rongdi/flinksql-connector-redis
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- 好茶葉的特點(diǎn)
- VLQ & Base64 VLQ 編碼方式的原理及代碼實(shí)現(xiàn)
- Spring Boot 配置 jar 包外面的 Properties 配置文件
- 【C++】從零開始的CS:GO逆向分析3——寫出一個(gè)透視
- 適合隔夜帶飯的菜譜
- 駝鳥蛋的營養(yǎng)價(jià)值
- 2023年10月13日是提車吉日嗎 2023年10月13日是提車的黃道吉日嗎
- 一斤糖蒜的糖和醋比例
- 2023年10月13日旅游黃道吉日 2023年10月13日旅游行嗎
- 2023年10月13日出差好不好 2023年10月13日是出差的黃道吉日嗎
