storm實戰:基於storm,kafka,mysql的實時統計系統


公司對客戶開放多個系統,運營人員想要了解客戶使用各個系統的情況,在此之前,數據平台團隊已經建設好了統一的Kafka消息通道。

為了保證架構能夠滿足業務可能的擴張后的性能要求,選用storm來處理各個應用系統上傳到kafka中的埋點數據並在Mysql中匯聚。

埋點數據上報的格式為json,會上報類似如下的數據 

{
    "account": "001",
    "accountName": "旺財寶",
    "subaccount": "001",
    "subaccountName": "caller001",
    "timestamp": 1474625187000,
    "eventType": "phone",
    "eventTags": [
        {
            "name": "incoming",
            "value": 1
        },
        {
            "name": "missed",
            "value": 1
        },
        {
            "name": "edited",
            "value": 1
        }
    ]
}

最終通過Storm,在Mysql中匯聚成如下格式 

account account_name subaccount subaccount_name event_type event_tag start_time end_time count
001 旺財寶     phone incoming 2016/9/23 18:00:00 2016/9/23 18:59:59 53
001 旺財寶     phone missed 2016/9/23 18:00:00 2016/9/23 18:59:59 53

 

 

 

 

通過web包裝sql語句來作各個業務場景的查詢:如某賬號一段時間內某事件發生的次數,所有賬號一段時間的各個事件發生的次數,或者某事件高發的時間段等等。

之前考慮了最終結果存到哪里:有這樣幾個待選,Redis,HBase,MongoDB,Mysql。經過估算發現一年的數據量可能不到一千萬,在這個數量級,Mysql可以橫着走了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM