您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Storm面試題案例分析”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
1、需求分析
平臺在活動促銷日(例如雙 11)要求實時展示當日的一些銷售信息我們從三個維度去統(tǒng)計計算:
平臺運維角度統(tǒng)計指標: 平臺總銷售額、平臺下單人數(shù)、平臺商品銷售數(shù)量。
商品銷售角度統(tǒng)計指標: 每個商品總銷售額、每個商品購買人數(shù)、每個商品銷售數(shù)量。
店鋪銷售角度統(tǒng)計指標: 每個店鋪總銷售額、每個店鋪購買人數(shù)、每個店鋪銷售數(shù)量。
2、確定數(shù)據(jù)源
數(shù)據(jù)源:訂單系統(tǒng)與支付系統(tǒng)產(chǎn)生的數(shù)據(jù)。
3、確定采集方案
訂單系統(tǒng)和支付系統(tǒng)產(chǎn)生的數(shù)據(jù) 通過 ActiveMQ 到 kafka 中,Storm 集成kafka 獲取數(shù)據(jù)。(注:為什么用 ActiveMQ?一方面,電商業(yè)務系統(tǒng)當中需要用到事務支持,只能用比較嚴謹?shù)?jms 系統(tǒng)來實現(xiàn),所以考慮到用 ActiveMQ。另一方面,kafka 直接讀取數(shù)據(jù)庫,會影響數(shù)據(jù)庫速度。所以訂單系統(tǒng)的數(shù)據(jù)通過 ActiveMQ 這個中間件來落地到數(shù)據(jù)庫,kafka從ActiveMQ 中間件中取數(shù)據(jù),就可以避免直接讀數(shù)據(jù)庫的問題。)
4、確定存儲
我們將 Storm 處理后的數(shù)據(jù),通過 Redis 來累加計數(shù)并存儲在 Redis 中。
5、數(shù)據(jù)計算
編寫 Storm 代碼:Storm 與 kafka 整合來獲取到數(shù)據(jù),將每一條數(shù)據(jù)信息,利用 Redis 中 incrBy 這個命令來累加計數(shù)并存儲在 Redis 中。
6、展現(xiàn)
可以寫一個定時器,定時的去 Redis 中獲取結(jié)果數(shù)據(jù),展示到 web 界面上。
7、storm 日志監(jiān)控告警系統(tǒng)
8、需求分析
實現(xiàn)項目中日志監(jiān)控的功能,需要做到日志監(jiān)控實時告警,例如系統(tǒng)中出現(xiàn)任何異常,觸發(fā)任何的告警規(guī)則,都可以實時通過短信或者郵件告知相關(guān)系統(tǒng)負責人。
9、確定數(shù)據(jù)源
每個業(yè)務系統(tǒng)(如: 訂單系統(tǒng),商品管理系統(tǒng),用戶系統(tǒng))產(chǎn)生的日志信息。
10、確定采集方案
將日志數(shù)據(jù) 通過 flume 采集到 kafka 中,Storm 集成 kafka 獲取數(shù)據(jù)。
11、確定存儲
將觸發(fā)告警規(guī)則的數(shù)據(jù),存儲在MySQL 數(shù)據(jù)庫中。
12、數(shù)據(jù)計算
·通過自定義flume 攔截器,給不同系統(tǒng)產(chǎn)生的日志數(shù)據(jù)前加上一個appId 來做唯一標識(不同系統(tǒng)對應的告警規(guī)則和負責人不同,所以這里要加一個唯一標識方便我們查找對應的規(guī)則和負責人)。
·Storm 代碼編寫步驟:
(1)、獲取 kafka 中的數(shù)據(jù)。
(2)、設(shè)置定時器,定時讀取在 MySQL 數(shù)據(jù)庫中的告警規(guī)則(數(shù)據(jù)庫中的告警規(guī)則我們可以隨時去修改,所以要采用定時器去讀取,保證拿到是最新的規(guī)則)。
(3)、將獲取到的數(shù)據(jù),與告警規(guī)則進行匹配,得到匹配成功的告警數(shù)據(jù)信息。
(4)、將告警信息 以郵件,或者短信 方式發(fā)送給對應的負責人(對應人的信息,從 MySQL 數(shù)據(jù)庫中獲?。?/p>
(5)、最后將警告信息存儲到我們的 MySQL 數(shù)據(jù)庫中(方便以后查詢異常記錄)。
“Storm面試題案例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。