1. 程式人生 > >A Practical Guide to Broadcast State in Apache Flink

A Practical Guide to Broadcast State in Apache Flink

什麼事廣播狀態

廣播狀態可以用於以特定的方式組合和聯合兩個事件流。第一個事件流被廣播給運算元的所有並行例項,這些例項將他們維持在狀態中。 其它事件流將不會被廣播,但是會被髮給同一個運算元的個別例項,並與廣播流事件一起處理。新的廣播狀態非常適合需要加入低吞吐量和高吞吐量流或需要動態更新其處理邏輯的應用程式。我們將使用後一個用例的具體示例來解釋廣播狀態,並在本文的其餘部分更詳細地展示其API。

廣播狀態的動態模式評估

想象一下一個電子商務網站捕獲所有使用者的互動作為使用者行為流。運營該網站的公司對於分析互動以增加收入,改善使用者體驗,以及檢測和防止惡意行為很感興趣。該網站實現了一個流應用程式,用於檢測使用者事件流上的模式。但是,公司希望每次模式更改時都避免修改和重新部署應用程式。相反,應用程式在從y模式流接收新行為時獲取第二個模式流並更新其活動模式。在下文中,我們將逐步討論此應用程式,並展示它如何利用Apache Flink中的廣播狀態功能。

我們的示例應用程式獲取了兩個資料流。第一個流在網站上提供使用者操作,並在上圖的左上方顯示。使用者互動事件包括操作的型別(使用者登入,使用者登出,新增到購物車或完成支付)和使用者的ID,他們都被各種顏色進行編碼。在我們的圖示中的使用者動作事件流包含使用者1001的登出動作,其後是使用者1003的支付完成事件,以及使用者1002的“新增到購物車”動