成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高級測試:如何使用Flink對Strom任務的邏輯功能進行復現測試?

開發 測試
本文主要通過兩個最基本的Flink程序實例對上述兩個使用Flink測試Strom任務邏輯存在的基本問題進行解答。

Flink和Strom都是時下較為流行的數據流平臺,考慮以下一種應用場景:已經使用Strom完成了對于某一邏輯功能的開發,如果現在期望使用Flink實現相同的邏輯,那么就需要考慮如何使用Flink來對Strom任務的邏輯功能進行最簡單的復現測試。

使用Flink來測試Strom任務的邏輯主要存在兩個最基本的問題:第一,Storm通過自定義的Bolt類實現自定義的邏輯,在Flink中如何實現?第二,Storm按照自定義標準實現數據分發的邏輯,在Flink中如何實現?

本文主要通過兩個最基本的Flink程序實例對上述兩個使用Flink測試Strom任務邏輯存在的基本問題進行解答。

第一個問題,我們可以通過Flink的ProcessFuction類進行實現,通過繼承該類,在該類的processElement方法中實現自定義邏輯。ProcessFuction類如下圖所示,我們可以通過var1這個參數直接獲取當前流中的數據,然后進行自定義的邏輯加工,再通過Collector類var3的collect方法將處理后的數據發送到下一個流中。

假設某一Strom任務的功能邏輯是:① 對初始數據源(一個字符串)末尾添加一個字符串。② 然后再次添加另一個字符串。

我們以上述對字符串加工的Strom任務為例,說明Flink程序如何通過ProcessFuction類對該任務實現復現測試。

(1)Flink主程序,假設初始數據源為“abc”。

(2)第一個業務加工類,給數據流末尾添加“def”。

(3)第二個業務加工類,給數據流末尾添加“ghi”。

(4)執行Flink程序,觀察輸出結果,“abc”被二次加工為“abcdefghi”。

第二個分發數據的問題,我們假設某一Strom任務的功能邏輯是對數據源(股票對象)進行分類,將股價高于X的分為一類,將股價小于等于X的分為另一類。

我們以上述對股票數據對象分類處理的Strom任務為例,說明Flink程序如何通過旁路輸出特性實現對數據流按照自定義標準分類,輸出到不同的子數據流中處理。

Flink 的旁路輸出依然涉及ProcessFunction類的processElement方法,該方法的Context類型的var2參數的主要作用是利用其output方法進行旁路輸出(我們用于進行數據分流)。

Flink的旁路輸出特性可以用來對數據進行分流,通過創建一個流的標簽(OutputTag),再利用這個OutputTag標簽對象作為參數,調用初始/父級數據流的getSideOutput(OutputTag)方法獲取子數據流。

每個流標簽都有一個id,也可以不創建對象,只要流標簽的id相同,其中的數據就相同。因此,可以通過匿名內部類的形式來獲取子數據流。第一個參數是id,第二個參數是數據類型(不能省略)。

(1)創建股票類Stock,屬性包括名稱和價格。

(2)創建消費消息的Flink程序。

(3)創建生產消息的Flink程序。

我們用“STOCK_LOW_PRICE”和“STOCK_HIGH_PRICE”這兩個ID作為兩個旁路輸出標簽的ID。

在processElement方法中,我們通過判斷股票的價格是否大于50區分出低價股和高價股,利用Context對象的output方法進行旁路輸出,把price小于50的Stock對象輸出到ID為“STOCK_LOW_PRICE”的低價股標簽旁路中,而把price大于等于50的Stock對象輸出到ID為“STOCK_HIGH_PRICE”的高價股標簽旁路中。

(4)依次啟動消費者程序、生產者程序,觀察消費者程序控制臺中的輸出:

此時,桌面生成了兩個文件夾,當中記錄了股票數據,result1記錄了小于50的低價股,result2中記錄了股價大于等于50的高價股。

? ?

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2013-05-24 09:25:27

2010-08-31 08:57:02

谷歌即時搜索功能

2009-12-01 19:12:41

Visual Stud

2025-01-27 11:52:23

2010-12-27 09:19:23

2020-07-07 13:00:00

Linux壓力測試

2021-01-05 08:00:00

Windows 10工具GPU

2022-01-10 07:17:02

安全工具CFB模糊測試

2009-12-10 14:52:21

VS2005 Expr

2021-03-28 23:03:50

Python程序員編碼

2021-07-03 08:54:49

LinuxSysbench性能

2011-03-04 09:09:07

BlueJ

2023-06-06 16:10:11

2022-07-21 08:43:01

功能測試測試

2020-11-05 18:30:32

接口測試

2013-05-17 13:31:58

2017-12-12 13:17:36

機器學習代碼單元測試

2021-03-13 17:49:56

網站測試Web程序開發

2012-11-01 11:32:23

IBMdw

2012-11-01 11:37:05

JavaScript單元測試測試工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人一区二区 | 国产精品久久久爽爽爽麻豆色哟哟 | 成人欧美一区二区三区黑人孕妇 | 丝袜天堂| 成人综合在线视频 | 欧美在线a| 久久精品国产一区二区三区 | 超碰97干| 6080亚洲精品一区二区 | 91p在线观看 | 色片在线观看 | 99久久婷婷国产综合精品电影 | 国产成人在线视频免费观看 | 欧美中文字幕在线观看 | 日韩1区| 日韩欧美国产一区二区三区 | 日韩成人中文字幕 | 国产精品视频网 | 一区亚洲| 宅男噜噜噜66一区二区 | 亚洲欧洲精品成人久久奇米网 | 亚洲精品久久久久中文字幕欢迎你 | 久久新| 精品一二三区 | 欧美一级免费观看 | 91中文在线观看 | 欧美一级一区 | 国产一区二区免费 | 成人在线观看免费视频 | 1级黄色大片 | 久久精品一区 | 日韩精品视频在线播放 | 成人国产免费视频 | 一区二区不卡 | 精品国产乱码一区二区三 | 免费看淫片 | 亚洲视频中文 | 香蕉一区 | 狠狠做深爱婷婷综合一区 | 成人久久久 | 欧美激情精品久久久久久变态 |