不知道你是否有過和我類似的經歷?
我是 2018 年 6 月加入公司,一直負責監控平臺的告警系統。之後,我們的整個監控平臺架構中途換過兩次,其中一次架構發生了巨大的變化。我們監控告警平臺最早的架構如下圖所示:
這個架構的挑戰難點在於:
- 海量的監控數據(Metric & Log & Trace 數據)實時寫入 ElasticSearch;
- 多維度的監控指標頁面展示(Dashboard) 查 ElasticSearch 的數據比較頻繁;
- 不斷遞增的告警規則需要通過查詢 ElasticSearch 數據來進行判斷是否要告警。
從上面的幾個問題我們就可以很明顯的發現這種架構的瓶頸就在於 ElasticSearch 集群的寫入和查詢能力,在海量的監控數據(Metric & Log & Trace 數據)下實時的寫入對 ElasticSearch 有極大的影響。
我依然清楚記得,當時經常因為寫入的問題導致 ElasticSearch 集群掛掉,從而讓我的告警和監控頁面(Dashboard)歇菜(那會老被噴:為啥配置的告警規則沒有觸發告警?為啥查看應用的 Dashboard 監控頁面沒數據)。我也很無奈啊,只想祈禱我們的 ElasticSearch 集群穩一點。
1、初次接觸 Flink
在如此糟糕的架構情況下,我們挺過了幾個月,後面由於一些特殊的原因,我們監控平臺組的整體做了一個很大的架構調整,如下圖:
主要做了四點改變:
- 接入 Flink 集群去消費 Kafka 數據,告警的 Flink Job 消費 Kafka 數據去判斷異常點,然後做告警
- Metric & Trace 數據存儲到 ElasticSearch,之前還存儲在 ElasticSearch 中的有 Log 數據
- Log 數據存儲到 Cassandra
- Dashboard 查詢數據增加 API 查詢 Cassandra 的日誌數據
原先因為 Metric & Trace & Log 的數據量一起全部實時寫入到 ElasticSearch 中,對 ElasticSearch 的壓力很大,所以我們將 Log 的數據拆分存儲到 Cassandra 中,分擔了一些 ElasticSearch 的寫入壓力。
但是過後我們發現偶爾還會出現數據實時寫入到 ElasticSearch 集群把 ElasticSearch 寫掛的情況。所以那會不斷調優我們的寫入數據到 ElasticSearch 的 Flink Job,然後也對 ElasticSearch 服務端做了不少的性能調優。
另外那會我們的監控數據是以 10s 一次為單位將採集的數據發上來的,後面我們調整了下數據採集的策略(變成 30s 一次為單位採集數據),採取多種調優策略後,終於將我們的 ElasticSearch 弄穩定了。
2、遇到 Flink 相關的挑戰
替換成這種新架構後,由於組裡沒人熟悉 Flink,再加上那會兒 Flink 的資料真的很少很少,所以當時在組裡對 Flink 這塊大家都是從 0 開始學習,於大家而言挑戰還挺大的。
那時候我們跑在 Flink 上面的 Job 也遇到各種各樣的問題:
- 消費 Kafka 數據延遲
- checkpoint 失敗
- 窗口概念模糊、使用操作有誤
- Event Time 和 Processing Time 選擇有誤
- 不知道怎麼利用 Watermark 機制來處理亂序和延遲的數據
- Flink 自帶的 Connector 的優化
- Flink 中的 JobManager 和 TaskManager 經常掛導致 Flink Job 重啟
- Flink 集群模式的選型
...
因為碰到的各種各樣的問題,所以才會促使我們不斷地學習 Flink 的原理和內部機制,然後慢慢去解決上面遇到的各種問題,並逐步穩定我們監控平臺運行的 Flink Job。
3、為什麼要學習 Flink?
隨著大數據的不斷髮展,對數據的及時性要求越來越高,實時場景需求也變得越來越多,主要分下面幾大類:
那麼為了滿足這些實時場景的需求,衍生出不少計算引擎框架,現有市面上的大數據計算引擎的對比如下:
可以發現無論從 Flink 的架構設計上,還是從其功能完整性和易用性來講都是領先的,再加上 Flink 是阿里巴巴主推的計算引擎框架,所以從去年開始就越來越火了!
雖然市面上講 Flink 的太少太少,國內的中文資料太欠缺,已有的幾本書籍也不甚詳盡,但是國內在阿里的推動下,我相信 Flink 會越來越火的,並且阿里內部也將 Flink 做了一定的優化和修改,叫 Blink,今年年初也將源碼貢獻到 Flink 上面,後面在 Flink 1.9 版本會將 Blink 的功能進行合併到 Flink 上去。
目前,阿里巴巴、騰訊、美團、華為、滴滴出行、攜程、餓了麼、愛奇藝、有贊、唯品會等大廠都已經將 Flink 實踐於公司大型項目中,帶起了一波 Flink 風潮,勢必也會讓 Flink 人才市場產生供不應求的招聘現象。
需要Flink教程資料的小夥伴可以轉發本文+關注並私信【資料】,就可以免費領取了!
閱讀更多 趣學編程 的文章