用t-io從零寫一個像微信的IM(05):架構設計

關於架構


將帥無能,累死三軍;架構不行,耗死碼農。
架構之於軟件,同地基之於大廈。
地基腐則大廈塌,架構爛則軟件敗



架構圖

架構解說

1. 多級緩存

兩級是使用較多的一個流程,所謂兩級緩存指的是本地緩存和分佈式緩存,當本地緩存沒有命中時,則去分佈式緩存中獲取數據;而本架構中說到了多級緩存,是將本地緩存又分爲攔截器之前的緩存和業務數據緩存。攔截器之前的緩存指的是收到請求時,直接從請求路徑中獲取緩存,如果命中則直接返回;業務數據緩存比較大衆,本文略過介紹

2. 協議適配/轉換


web型的客戶端,用websocket會比較自然舒服;非web型的客戶端如安卓、IOS,用普通的socket會比較舒服簡單。於是服務器就需要同時支持普通socket和websocket,爲了減化業務開發,統一消息體結構,本架構特別放置了協議適配器和協議轉換器,用於將不同協議的Packet統一成業務需要的Packet。好在t-io內置了協議轉換器,也提供了端口數據共享的機制,所以在實現本架構的意圖時就變得相對簡單。

3. 流量控制

流控是每個系統必備的一個功能了,勿用多言,實現起來並不複雜

4. 任務隊列

爲了提升系統的流暢度,很多操作都會變成異步的,隊列成爲必不可少的一個組件

5. t-io集羣


t-io企業版的集羣版,已經內置了集羣能力,使用起來也相當簡單,本系統做了一個集羣開關,可隨時對集羣和非集羣進行切換

下集預告

用t-io從零寫一個像微信的IM(06):IM集羣設計


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章