1. 程式人生 > >Kafka專案實戰-使用者日誌上報實時統計之編碼實踐

Kafka專案實戰-使用者日誌上報實時統計之編碼實踐

1.概述

該課程我以使用者實時上報日誌案例為基礎,帶著大家去完成各個KPI的編碼工作,實現生產模組、消費模組,資料持久化,以及應用排程等工作, 通過對這一系列流程的演示,讓大家能夠去掌握Kafka專案的相關編碼以及排程流程。下面,我們首先來預覽本課程所包含的課時,他們分別有:

  接下來,我們開始第一課時的學習:《資料生產實現

2.內容

2.1 資料生產實現

  本課時主要給大家演示Kafka資料生產的程式碼實現,在前面搭建好的叢集環境下,完成Kafka的資料生產功能,以及一些注意事項,為我們編寫
消費程式碼做好準備,讓大家掌握Kafka的資料生產的程式碼實現。

  實踐本課時的內容,我們需要設計到兩個知識點,他們分別是:

  接著,我們先從一個知識點來開始實踐,實踐資料生產模組所包含的內容,有以下幾點:

  首先第一點是:對專案工程的檔案進行配置(pom) 然後是對叢集的連結資訊進行配置(這裡為什麼要將這些連結資訊配置在配置檔案當中,原因是,這些連結資訊單獨剝離到一個配置檔案,便於我們後期維護, 比如:後期新增新的節點資訊,或是移除一個已損壞的節點資訊,我們可以輕鬆,快速的在配置檔案中修改節點資訊即可,無需在去操作我們的業務程式碼。)具體演示細節請大家參考視訊操作。

  在演示完資料生成模組相關內容後,下面,我帶著大家去實踐Flume到Kafka模組的相關內容,如下所示:

  以上就是本課時的相關內容演示,其中包含了相關資訊的配置,資料的收集過程演示等。

2.2 資料消費實現

  本課時給大家演示 Kafka 資料消費的程式碼實現,在前面我們建立的 Kafka 的專案工程的基礎上,完成消費程式碼的編寫, 以及編寫 Storm 程式碼消費 Kafka 資料的需要注意的細節,通過本課時讓大家能夠掌握資料消費的程式碼實現。

  那麼,接下來我給大家列出本課時所涉及的核心知識點,如下所示:

  下面,我們開始第一個核心知識點的實踐,實踐的所包含的內容如下所示:

  1. Storm叢集的資訊配置:這部分內容包含叢集的依賴連結資訊。
  2. 依賴檔案的選取:這裡我們這編寫Java程式碼實現相關功能時,需要選取依賴的JAR包來輔助我們完成編碼工作。

  接下來我帶這大家看看,如何編碼實現這一部分內容,即:實現Kafka到Storm模組的 內容實現,該部分涉及的內容如下所示:

  具體的演示細節,大家可以參考視訊操作,觀看地址:《資料消費實現

2.3 資料持久化

  內容涉及給大家,介紹如何將消費後的資料(即我們統計的kpi結果)持久化,在前面資料消費實現的基礎上,通過流式計算將統計的結果持久化到 Redis 叢集或是 DB 中,讓大家掌握資料持久化的程式碼實現。

  那麼,接下來,我們去看看本課時所涉及的核心知識點,如下所示:

  下面,我們開始第一個知識點的實踐,實現基礎層程式碼模組所包含的內容,如下所示:

  1. 實現思路:先實現這部分功能之前,我們要清楚它的一個實現思路,如右圖所示: 這裡,我們在Storm的計算模組中,將相應的KPI統計之後,做對應的持久化,這裡我們可以選擇 持久化到我們所選擇的DB庫當中,圖中我們持久化到Redis和MySQL當中,那麼接下來,我們按照這個思路 去實現。
  2. 在實現之前,首先我們需要準備好DAO層的程式碼,這層程式碼的作用是與DB互動。
  3. 接下來,我去給大家演示這一部分內容。

  下面,我們去實現Storm統計結果儲存到DB的相關內容,還模組包含如下所示的內容:

  1. 實現思路:同樣,在實現這一部分功能時,我們也要清楚,在什麼地方去持久化我們統計的結果。如右圖所示: 我們在Bolt當中,當我們的KPI指標統計完成後,就可以呼叫相應的儲存程式碼去持久化這部分統計結果。
  2. 在清楚了思路之後,我們去實現這一部分的入庫流程。
  3. 下面我去給大家演示這一部分內容。

  具體演示細節,大家可以參考視訊操作,觀看地址:《資料持久化

2.4 應用排程

  該部分內容將給大家介紹將開發好的應用打包部署到伺服器,通過提交 Topology 到 Storm 叢集, 完成 Storm 消費的程式的部署,讓大家掌握專案的打包部署以及排程流程。下面,我們去看看實踐本課時的內容,所涉及那些核心知識點,如下所示:

  接下來,我們開始對第一個知識點的實踐。關於打包所包含的內容,如下所示:

  1. 首先是打包的方式流程,如下圖所示:
  2. 使用Maven打包,本專案工程所採取的是Maven結構,這裡我們使用Maven命令打包對應的工程。
  3. 下面,我去給大家演示這一部分內容

  下面我們去實踐如何將我們打包好的應用部署到Storm叢集,去跑相應的任務。 實現該模組所包含的內容,如下所示:

  1. 實現思路。如下圖所示:這裡我們要清楚它的各個階段的職責,我們在開發階段,為了開發的便利以及除錯的方便, 我們可以使用本地提交,就像前面,我們給大家演示的,直接在IDE當中,提交相應的Topology即可。而早生產環境下, 我們需要依賴叢集,利用分散式的思想去跑我們的任務,所以,我們需要使用叢集提交,這裡在提交任務時,確保Storm 叢集是執行正常的。
  2. 那麼接著的內容就是去實現相應的提交流程。
  3. 下面,我去給大家演示這一部分內容。

  具體演示細節,大家可以參考視訊操作,觀看地址:《應用排程

3.總結

  本課程我們對專案的指標進行了編碼實踐,並指導大家去編碼實現了相應的模組功能,以及幫助大家去提交我們開發的應用等知識,應該掌握一下知識:

4.結束語