精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

五分鐘了解Flink狀態管理

開發 架構
本文主要介紹了Flink的狀態和狀態管理,以及Demo和相關代碼,希望對你有幫助!

什么叫做Flink的有狀態計算呢?說白了就是將之前的中間結果暫時存儲起來,等待后續的事件數據過來后,可以使用之前的中間結果繼續計算。本文主要介紹Flink狀態計算和管理、代碼示例。

1、有狀態的計算

什么是Flink的有狀態的計算。在流式計算過程中將算子的中間結果保存在內存或者文件系統中,等下一個事件進入算子后可以從之前的狀態中獲取中間結果,以便計算當前的結果,從而無需每次都基于全部的原始數據來統計結果,極大地提升了系統性能。

每一個具有一定復雜度的流計算應用都是有狀態的,任何運行基本業務邏輯的流處理應用都需要在一定時間內存儲所接受的事件或者中間結果。

2、狀態管理

Flink如何管理狀態?主要就是:本地訪問和存儲、容錯性(可以自動按一定的時間間隔產生快照,并且在任務失敗后進行恢復)。

狀態(State)操作是指需要把當前數據和歷史計算結果進行累加計算,即當前數據的處理需要使用之前的數據或中間結果。

例如,對數據流中的實時單詞進行計數,每當接收到新的單詞時,需要將當前單詞數量累加到之前的結果中。這里單詞的數量就是狀態,對單詞數量的更新就是狀態的更新。如下圖:

狀態的計算模型,如下圖:

如下圖,Source、map()、keyBy()/window()/apply()算子的并行度為2,Sink算子的并行度為1。keyBy()/window()/apply()算子是有狀態的,并且map()與keyBy()/window()/apply()算子之間通過網絡進行數據分發。

Flink應用程序的狀態訪問都在本地進行,這樣有助于提高吞吐量和降低延遲。通常情況下,Flink應用程序都是將狀態存儲在JVM堆內存中,但如果狀態數據太大,也可以選擇將其以結構化數據格式存儲在高速磁盤中。

通過狀態快照,Flink能夠提供可容錯的、精確一次的計算語義。Flink應用程序在執行時會獲取并存儲分布式Pipeline(流處理管道)中整體的狀態,它會將數據源中消費數據的偏移量記錄下來,并將整個作業圖中算子獲取到該數據(記錄的偏移量對應的數據)時的狀態記錄并存儲下來。

當發生故障時,Flink作業會恢復上次存儲的狀態,重置數據源從狀態中記錄的上次消費的偏移量,開始重新進行消費處理。而且狀態快照在執行時會異步獲取狀態并存儲,并不會阻塞正在進行的數據處理邏輯。這個機制跟Kafka等消息中間件的消費方式很像。

Flink需要知道狀態,以便可以使用Checkpoint和Savepoint來保證容錯(下一篇會繼續介紹)。狀態還允許重新調整Flink應用程序,這意味著Flink負責在并行實例之間重新分配狀態。

3、Keyed State

Keyed State是Flink提供的按照Key進行分區的狀態機制。

在通過keyBy()分組的KeyedStream上使用,對每個Key的數據進行狀態存儲和管理,狀態是跟每個Key綁定的,即每個Key對應一個狀態對象。

Keyed State支持的狀態數據類型如下:ValueState、ListState、ReducingState、AggregatingState<IN, OUT>、MapState<UK, UV>。下文以ValueState為例,介紹如何使用。

4、狀態管理示例和代碼

我們來模擬這樣一個場景:如果某個用戶1分鐘內連續兩次退款,第二次則發出告警。

模擬訂單對象:

public class OrderBO {
    /**
     * ID
     */
    private Integer id;
    /***
     * 訂單標題
     */
    private String title;
    /**
     * 訂單金額
     */
    private Integer amount;
    /**
     * 訂單狀態:1-已支付,2-已退款
     */
    private Integer state;
    /**
     * 用戶ID
     */
    private String userId;
}

利用狀態管理,處理告警邏輯:

/**
* 告警處理邏輯
**/
private static class AlarmLogic extends KeyedProcessFunction<String, OrderBO, OrderBO> {
    // 是否已經出現退款的標記
    private ValueState<Boolean> flagState;
    // 定時器,時間到了會清掉狀態
    private ValueState<Long> timerState;
    private static final long ONE_MINUTE = 60 * 1000;

    @Override
    public void open(Configuration parameters) throws Exception {
        ValueStateDescriptor<Boolean> flagDescriptor = new ValueStateDescriptor<>(
                "flag",
                Types.BOOLEAN);
        flagState = getRuntimeContext().getState(flagDescriptor);

        ValueStateDescriptor<Long> timerDescriptor = new ValueStateDescriptor<>(
                "timer-state",
                Types.LONG);
        timerState = getRuntimeContext().getState(timerDescriptor);
    }

    @Override
    public void processElement(OrderBO value, KeyedProcessFunction<String, OrderBO, OrderBO>.Context context, Collector<OrderBO> collector) throws Exception {
        Boolean refundFlag = flagState.value();

        // 如果已經退款過一次了,如果再出現退款則發射給下個算子,然后清理掉定時器。狀態2代表退款
        if (refundFlag != null && refundFlag) {
            if (value.getState() == 2) {
                collector.collect(value);
            }
            cleanUp(context);
        } else {
            // 如果第一次出現退款,則寫入狀態,同時開啟定時器。狀態2代表退款
            if (value.getState() == 2) {
                flagState.update(true);
                long timer = context.timerService().currentProcessingTime() + ONE_MINUTE;
                context.timerService().registerProcessingTimeTimer(timer);
                timerState.update(timer);
            }
        }
    }

    /**
     * 定時器到了之后,清理狀態值
     */
    @Override
    public void onTimer(long timestamp, KeyedProcessFunction<String, OrderBO, OrderBO>.OnTimerContext ctx, Collector<OrderBO> out) throws Exception {
        timerState.clear();
        flagState.clear();
    }

    /**
     * 手動清理狀態值
     *
     * @param ctx
     * @throws Exception
     */
    private void cleanUp(Context ctx) throws Exception {
        Long timer = timerState.value();
        ctx.timerService().deleteProcessingTimeTimer(timer);

        timerState.clear();
        flagState.clear();
    }
}

模式生成數據和主流程代碼:

public static void main(String[] args) throws Exception {
    // 1、執行環境創建
    StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment();
    // 2、讀取Socket數據端口。實際根據具體業務對接數據來源
    DataStreamSource<String> orderStream = environment.socketTextStream("localhost", 9527);
    // 3、數據讀取個切割方式
    SingleOutputStreamOperator<OrderBO> resultDataStream = orderStream
            .flatMap(new CleanDataAnd2Order()) // 清洗和處理數據
            .keyBy(x -> x.getUserId()) // 分區
            .process(new AlarmLogic()); // 處理告警邏輯

    // 4、打印分析結果
    resultDataStream.print("告警===>");
    // 5、環境啟動
    environment.execute("OrderAlarmApp");
}

模擬數據:

模擬場景:某個用戶1分鐘內連續兩次退款,第二次發出告警。
示例數據:
1,aaa,100,1,user1
2,bbb,200,1,user2
3,ccc,300,2,user1
4,ddd,400,2,user1

5,ddd,400,2,user1
6,bbb,200,2,user2
7,bbb,400,2,user2

完整代碼地址:https://github.com/yclxiao/flink-blog/blob/7eb84d18aa71d8f2023d6158796de34d331b9b3f/src/main/java/top/mangod/flinkblog/demo005/OrderAlarmApp.java#L43

責任編輯:趙寧寧 來源: 不焦躁的程序員
相關推薦

2009-11-05 14:53:54

Visual Stud

2021-10-19 07:27:08

HTTP代理網絡

2022-12-16 09:55:50

網絡架構OSI

2024-06-25 12:25:12

LangChain路由鏈

2024-05-13 09:28:43

Flink SQL大數據

2009-11-06 10:25:34

WCF元數據交換

2009-10-26 15:45:43

VB.NET類構造

2024-09-23 17:05:44

2020-05-12 09:10:24

瀏覽器服務器網絡

2020-02-19 19:26:27

K8S開源平臺容器技術

2023-07-26 07:11:50

LVM底層抽象

2009-11-02 18:07:58

Oracle數據庫

2024-08-13 11:13:18

2020-03-06 10:45:48

機器學習人工智能神經網絡

2021-09-18 11:36:38

混沌工程云原生故障

2023-12-12 08:00:50

節點哈希算法

2024-04-28 12:55:46

redis頻道機制

2009-11-16 10:53:30

Oracle Hint

2024-12-11 07:00:00

面向對象代碼

2025-03-13 06:22:59

點贊
收藏

51CTO技術棧公眾號

天天操夜夜操很很操| 97久久夜色精品国产九色| 好吊视频在线观看| а天堂中文最新一区二区三区| 国产精品视频第一区| 午夜精品久久久久久久96蜜桃| 国产不卡av在线播放| 欧美喷水视频| 亚洲欧洲在线观看| 男人午夜视频在线观看| 99热99re6国产在线播放| 久久综合九色综合欧美亚洲| 国产精品欧美一区二区| 久久精品免费av| 色婷婷一区二区三区| 亚洲成人久久电影| 久久国产激情视频| 国模套图日韩精品一区二区| 一区二区三区在线视频免费| 欧美视频1区| 亚洲免费成人网| 麻豆精品视频在线观看免费| 2024亚洲男人天堂| 久久久久97国产| 青草国产精品| 亚洲理论在线a中文字幕| 亚洲精品久久久久久| xxxxx.日韩| 色香蕉成人二区免费| 拔插拔插海外华人免费| 国产网友自拍视频导航网站在线观看| 久久蜜臀中文字幕| 精品一区2区三区| 午夜久久久久久噜噜噜噜| 日韩av中文字幕一区二区| 2024亚洲男人天堂| 日韩伦理在线视频| 影音先锋日韩资源| 欧美日韩第一视频| 欧美人禽zoz0强交| 91精品久久久久久久久久不卡| 一区二区在线视频播放| 国产真实乱人偷精品人妻| 日韩三级av| 日韩电影大片中文字幕| 亚洲av人人澡人人爽人人夜夜| 免费精品一区| 欧美一卡2卡三卡4卡5免费| 亚洲午夜激情影院| 国产精品xnxxcom| 91麻豆精品国产自产在线观看一区 | 欧美午夜网站| 欧美一级日韩不卡播放免费| 伊人五月天婷婷| 国产一区二区三区国产精品| 91麻豆精品国产91久久久久久久久| 日本人69视频| 国产专区精品| 国产a久久精品一区二区三区| 在线不卡中文字幕| 亚洲精品mv在线观看| 亚洲最大的免费视频网站| 欧美日韩成人综合天天影院 | 国产精品91一区二区| 亚洲精品欧美极品| 亚洲精品久久久久久无码色欲四季 | 最新国产精品久久| av在线免费播放| 亚洲一区二区三区三| 婷婷五月综合缴情在线视频| 91av久久| 日本韩国精品一区二区在线观看| 牛夜精品久久久久久久| www.久久热| 亚洲国产成人在线视频| 中文字幕丰满乱子伦无码专区| 精品国产一区一区二区三亚瑟 | 日韩av在线免费观看不卡| 国产成人自拍视频在线观看| 亚洲熟妇av乱码在线观看| 国产一区激情在线| 久久99久久精品国产| 成年人视频在线看| 亚洲男人的天堂网| 国产深夜男女无套内射| 国产成+人+综合+亚洲欧美| 欧美日韩精品系列| 男男一级淫片免费播放| 欧美一区二区三区高清视频| 久久天堂av综合合色| 日韩免费一二三区| 免费一级欧美片在线观看| 成人黄色片视频网站| 美国一级片在线免费观看视频| 国产精品国产三级国产| 久久综合色视频| 日韩午夜电影免费看| 精品日韩成人av| 人妻无码一区二区三区免费| 激情文学一区| 成人网在线免费看| 免费在线黄色电影| 一区二区三区.www| jizz大全欧美jizzcom| 国产suv精品一区| 中文字幕在线精品| www.国产色| 国产99久久久国产精品潘金 | 亚洲精品一区二区在线看| 91精品国产色综合久久不卡98口| 国产美女精品视频国产| 国产亚洲人成网站| 欧美a v在线播放| 日韩成人在线观看视频| 一区二区三区国产视频| 五月婷婷亚洲综合| 成人av网站免费| 国产在线xxxx| 国产日韩一区二区三免费高清 | 色呦呦视频在线观看| 在线观看亚洲一区| 波多野结衣办公室33分钟| 亚洲一级影院| 98国产高清一区| v天堂福利视频在线观看| 欧美视频一区二区| 免费一级做a爰片久久毛片潮| 一本色道久久综合亚洲精品高清| 99久久国产免费免费| 免费大片黄在线观看视频网站| 在线免费观看不卡av| www.自拍偷拍| 西西裸体人体做爰大胆久久久| 国产另类自拍| 国产盗摄在线视频网站| 日韩精品中午字幕| 久草视频在线资源| 懂色av中文一区二区三区| 日韩中文在线字幕| 国产美女视频一区二区| 欧美成人三级视频网站| 999久久久久| 亚洲六月丁香色婷婷综合久久| 亚洲一二三av| 亚洲精品国产成人影院| 97se视频在线观看| 狂野欧美激情性xxxx欧美| 欧美变态凌虐bdsm| 麻豆国产尤物av尤物在线观看 | 高清国产在线一区| 92久久精品| 亚洲国产精品字幕| 国产成人精品网| 久久久久国产精品厨房| 国产真人无码作爱视频免费| 欧美理论电影大全| 国产精品自拍偷拍视频| 成人日批视频| 精品免费日韩av| 日韩三级视频在线| 久久久午夜精品理论片中文字幕| 日韩精品一区二区三区不卡| sdde在线播放一区二区| 成人免费看吃奶视频网站| 日本三级在线观看网站| 日韩精品免费在线| 中文字幕 人妻熟女| 国产精品传媒在线| 国产成人av片| 久久不射网站| 自拍亚洲欧美老师丝袜| 第四色在线一区二区| 日本sm极度另类视频| 色老头视频在线观看| 欧美一区二区视频观看视频 | 午夜成年人在线免费视频| 精品捆绑美女sm三区| 日韩精品在线免费视频| 国产精品女主播av| 在线观看免费视频黄| 亚洲女人av| 超碰成人在线免费观看| 精品久久ai电影| 国产精品高潮呻吟久久av黑人| 成a人片在线观看| 亚洲精品永久免费精品| 91禁在线观看| 精品国产成人av| 黄色精品视频在线观看| av网站一区二区三区| 一级片视频免费观看| 欧美日韩亚洲一区| 日韩欧美一区二区三区四区| 亚洲一区电影| 国产精品欧美久久久| 麻豆视频在线看| 久久手机精品视频| 成人免费视频| 亚洲福利在线播放| 99精品免费观看| 日韩欧美在线视频观看| 免费在线观看黄视频| 国产精品美女久久久久久久| 人妻少妇精品视频一区二区三区| 精品一区二区三区免费观看 | 日韩手机在线观看| 亚洲三级电影网站| 91激情视频在线观看| 99麻豆久久久国产精品免费| www.久久com| 青青草国产成人99久久| 国产精品宾馆在线精品酒店| 欧美日韩一卡| 亚洲欧美久久久久一区二区三区| 天堂俺去俺来也www久久婷婷 | 色欲无码人妻久久精品| 欧美a一区二区| 免费在线观看日韩视频| 亚洲国产黄色| 欧美大黑帍在线播放| 91精品高清| 国产91av视频在线观看| 欧美日韩一二| 日韩欧美亚洲v片| 久久av免费| 青青成人在线| 国产伦一区二区三区| 久久久久久一区| 麻豆精品少妇| 久久99精品久久久久久秒播放器| 高潮按摩久久久久久av免费| av资源站久久亚洲| 日本一区二区三区视频在线看| 91亚洲精品久久久久久久久久久久 | 欧美日韩亚洲精品一区二区三区 | 少妇av在线| 欧美激情在线一区| 国产在线拍揄自揄拍视频| 欧美国产日韩免费| 三级资源在线| 久久久久久久国产精品视频| 黄污视频在线观看| 高清欧美性猛交xxxx| 51漫画成人app入口| 欧美大尺度在线观看| 日本大片在线播放| 97久久久久久| 性感女国产在线| 国产精品99久久久久久人 | 青草在线视频| 国内精品久久久久影院优| 欧美aaaaa性bbbbb小妇| 日本中文字幕成人| 五月激情久久| 国产日产欧美a一级在线| 超碰国产精品一区二页| 亚洲一区美女视频在线观看免费| 亚洲小说春色综合另类电影| 国产在线精品一区| 国产精品一区二区三区av麻| 先锋影音欧美| 一区二区国产在线| 欧美一级欧美一级| 日韩影院免费视频| 激情图片中文字幕| k8久久久一区二区三区| 国产肥白大熟妇bbbb视频| 国产精品高潮久久久久无| 欧美日韩国产精品一区二区三区 | 欧美精品少妇videofree| www.超碰在线| 国产精品网址在线| 91成人午夜| 日韩精品成人一区二区在线观看| 日韩欧美电影| 久久人人爽人人爽人人av| 久久综合影视| 美女被艹视频网站| 国产亚洲欧美激情| 紧身裙女教师波多野结衣| 舔着乳尖日韩一区| 亚洲最大成人av| 亚洲成人激情在线| 欧美激情黑人| 97精品伊人久久久大香线蕉| 色综合视频一区二区三区日韩| 成人免费视频视频在| 黑人操亚洲人| 久久国产精品网| 蜜臀久久99精品久久久画质超高清 | 一级片视频在线观看| 欧美丰满少妇xxxxx高潮对白| 成人av无码一区二区三区| 亚洲免费视频网站| 在线午夜影院| 国产精品网址在线| 亚洲第一论坛sis| 国产又粗又长又爽视频| 视频一区二区欧美| 国模无码视频一区| 国产精品免费视频网站| 中文字幕在线字幕中文| 91精品国产91久久久久久一区二区| 深夜福利视频一区| 欧美成人精品在线观看| 91在线成人| 免费一区二区三区在在线视频| 午夜精品电影| av亚洲天堂网| 欧美国产日本韩| 久久久久99精品成人片我成大片| 日韩免费电影一区| 好了av在线| 国产精品老牛影院在线观看| 亚洲精品白浆高清| 丰满少妇大力进入| 国产成人亚洲综合色影视| 在线观看亚洲网站| 在线观看区一区二| 欧美69xxxxx| 97在线看福利| 国产图片一区| 国产在线视频在线| 国产精品一品视频| 四虎永久免费在线| 9191成人精品久久| 一本一道波多野毛片中文在线| 国产成人精品一区二区| 亚洲瘦老头同性70tv| 国产最新免费视频| 91免费看`日韩一区二区| 永久免费看片在线播放| 亚洲精品国产精品国自产观看浪潮 | 国产精品理论片| 在线播放精品视频| 色av吧综合网| 97精品资源在线观看| 欧美日韩一级在线 | 李宗瑞91在线正在播放| 精品久久久久久久久久久| 日本久久一级片| 91国产美女视频| 视频小说一区二区| 内射国产内射夫妻免费频道| av亚洲精华国产精华| 91video| 伊人青青综合网站| 日本电影久久久| 日本在线视频www色| 成人午夜电影久久影院| 97人人澡人人爽人人模亚洲| 日韩av在线资源| 欧美在线va视频| 一区二区三区四区欧美| 国产激情视频一区二区三区欧美 | 国产一区二区在线网站| 99热免费精品在线观看| 扒开jk护士狂揉免费| 欧美日韩在线电影| av大大超碰在线| 国产在线播放一区二区| 久久只有精品| 91香蕉一区二区三区在线观看 | 加勒比一区二区三区在线| 国产精品久久久久久久久久久新郎 | 欧美黑人在线观看| av网站免费线看精品| 波多野结衣网站| 久久国产精品久久精品| 国产精品nxnn| 一区二区三区免费播放| 一区二区成人在线观看| 三级在线观看| 成人欧美一区二区三区在线湿哒哒| 欧美日韩网站| 性欧美一区二区| 91精品久久久久久蜜臀| 多野结衣av一区| 一区二区在线高清视频| 大尺度一区二区| 亚洲免费视频二区| 欧美激情喷水视频| 欧美日韩国产高清电影| 2025中文字幕| 欧美性淫爽ww久久久久无| 羞羞视频在线免费国产| 日韩电影免费观看在| 成人性生交大片免费看中文 | 日韩免费高清av| 电影一区电影二区| 69sex久久精品国产麻豆| 中文在线免费一区三区高中清不卡| 亚洲精品福利网站| 国产精品稀缺呦系列在线| 亚洲毛片在线| 四虎884aa成人精品| 亚洲人永久免费| 999久久久精品一区二区| 最新av免费在线观看| 日韩欧美亚洲综合|