APP系統架構設計初探

2022-05-14 12:24:40 字數 918 閱讀 3896

一,體驗的優化

在手機上顯示,速度是乙個非常重要的體驗點,試想,如果您開啟乙個**,發現裡面的一直顯示失敗或者是x,稍微做得好一點的,可能是乙個不消失的loading或者是菊花等等,但不管如何, 沒能快速的拉取和展示對使用者體驗是乙個極大的挑戰。那麼,手機上的體驗如何做呢?這裡筆者有些小總結:

1,減少的大小。在失真度和大小中做好折衷,盡量利用工具減少的size,也可以考慮利用不同的格式。

2,減少的請求數。可以考慮把多個利用類似css sprite的方式進行合併,這樣可以載入一次即可;

3,考慮快取。對在客戶端進行一定的快取,設定好快取時長和更新機制;

4,考慮使用cdn進行載入,做到就近接入訪問;

5,解決dsn劫持的問題。在手機業務上的經驗告訴我們,很可能某些地區,某些運營商把我們的網域名稱封掉或者劫持了,這樣,的網域名稱解發布來的ip卻不是我們提供服務的ip,並且這種情況很難發現,  因為,如果運營商通過抽樣隨機劫持,就很難發現。

解決辦法有幾個思路:

.去掉dns,改成直接訪問ip的方式,但需要解決根據使用者的ip獲取最近服務的ip位址,實現上:這裡cgi在吐出訪問的位址的時候,獲取使用者的**閘道器ip,呼叫ip位址庫判斷**ip所屬地和運營商,然後下發對應的部署接入ip, 客戶端使用ip直連伺服器,快速的訪問資源。問題是,有實現成本,得業務自己去實現類似乙個dns解釋的邏輯 ,特別是放到cdn的話,這樣改造就無法使用cdn帶來的加速服務能力。

.做好dns劫持的監控,實際上dns解釋到的vip list肯定是在我們的乙個白名單內,如果不是,則肯定屬於dns劫持,客戶端可以在某個時候拉取一下我們的viplist,作為監控和判斷是否dns劫持的問題,如果dns的ip位址 不在白名單內,則替換使用白名單內的ip進行訪問。

.考慮備用網域名稱的方式,即如果乙個網域名稱拉取不到,改用備用網域名稱進行訪問,當然如果備用網域名稱也被劫持,那就不行了。

架構設計方法初探

好記憶不如爛筆頭,能記下點什麼,就記下點什麼,方便溫故而知新!3.架構設計三原則 4.架構設計的流程 架構設計的目的是為了解決系統複雜度帶來的問題,並不是要面面俱到,不需要每個架構都具備高效能 高可用 高擴充套件等特點,而是要識別出實際業務實際情況的複雜點,然後有有針對性地解決問題,即 有的放矢,而...

架構設計方法初探

最近學習了阿里資深技術專家李運華的架構設計教程,頗有收穫,總結一下。架構設計的目的是為了解決系統複雜度帶來的問題,並不是要面面俱到,不需要每個架構都具備高效能 高可用 高擴充套件等特點,而是要識別出實際業務實際情況的複雜點,然後有有針對性地解決問題,即 有的放矢,而不是貪大求全。在實際情況中,不一定...

架構設計方法初探

作者 陳彩華 複製 最近學習了阿里資深技術專家李運華的架構設計教程,頗有收穫,總結一下。架構設計的目的 是為了解決系統複雜度帶來的問題,並不是要面面俱到,不需要每個架構都具備高效能 高可用 高擴充套件等特點,而是要識別出實際業務實際情況的複雜點,然後有有針對性地解決問題,即 有的放矢,而不是貪大求全...