未來系統擴充套件,報表怎麼辦?
系統擴充套件會有幾種情況,不同的做法報表的應對策略也不同。
1、叢集
把單體應用部署到叢集環境,即每個節點都有一個完整的單體應用。透過負載均衡技術將使用者請求路由到不同節點上從而分擔併發壓力。
這種系統擴充套件方式很常見,目的是解決高併發下的請求響應效率問題,但無法改善大資料量時單個任務的響應效率。
這種情況下,報表開發無需特殊注意,按照單體應用的方式開發,應用叢集部署時隨應用部署即可。
2、水平拆分
為了解決大資料量時的訪問效率問題,可以透過水平拆分來擴充套件系統,常見的做法是資料層分表分庫、應用層採用叢集部署。
這時的報表開發要尤其注意,首先不能使用儲存過程了(其實單體應用我也不建議使用資料庫儲存過程了,參考資料: ),另外分表分庫後做 join 會比較困難,所以最好就不要寫複雜 SQL 了(可能也寫不出來),維護會比較麻煩,替代方案:
3、垂直拆分
面對複雜業務和大資料量還可以進行垂直拆分,梳理業務把業務縱向拆分成多個獨立部分(獨立節點),資料隨之分佈。
這種情況對報表的要求更高,除了要根據業務把報表分佈到不同的業務模組外,如果還有跨業務統計的報表可能還要藉助中間庫,或者資料庫中介軟體,以及其他技術。
這時的報表開發,單業務模組內理論上比較隨意,按單體應用方式開發也沒問題,但我仍強烈建議遵守 不在資料庫中實施複雜計算的開發規範;如果存在跨業務統計報表,則建議所有計算一定要在報表內部實現。
4、微服務
太複雜了不多解釋。微服務下的報表開發要遵守上述 2 和 3 的規則,除此以外,不建議用 JAVA 實現報表資料計算(資料準備),因為報表變化會比較頻繁,經常修改用 JAVA 開發的報表除了要跟業務程式碼緊耦合不好維護外,JAVA 不支援熱切換,報表修改後要重啟應用才能生效,這樣對業務會產生不小的影響。
總結,不同系統擴充套件方式下的報表開發注意事項:
1、叢集擴充套件
沒啥需要注意,開心就好
2、水平拆分
- 不用儲存過程
- 不寫複雜 SQL
3、垂直拆分
- 不用儲存過程
- 不寫複雜 SQL
- 不用中間彙總表
4、微服務
- 不寫儲存過程
- 不寫複雜 SQL
- 不用中間彙總表
- 不用 JAVA
參考資料:
1.
2.
網際網路架構發展
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2699762/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CentOS 系統下 PHP 怎麼新增擴充套件?CentOSPHP套件
- win10系統c盤不能擴充套件卷怎麼辦 win10系統盤無法擴充套件卷點不了如何處理Win10套件
- c盤擴充套件卷選項是灰的怎麼辦 c盤不能擴充套件卷的辦法套件
- windows系統磁碟擴容/擴充套件Windows套件
- Linux 檔案系統擴充套件Linux套件
- php怎麼安裝fileinfo擴充套件PHP套件
- PHP 系統樹圖擴充套件元件PHP套件元件
- 怎麼取的擴充套件模型裡表裡的欄位啊套件模型
- 一個可擴充套件的報警系統Quick-Alarm套件UI
- 怎麼樣“抄“一個PHP擴充套件PHP套件
- win10系統怎麼在Microsoft Edge中管理/新增/刪除擴充套件Win10ROS套件
- win10擴充套件卷用不了如何解決_win10擴充套件卷是灰色的怎麼辦Win10套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 使用ctypes來擴充套件Python套件Python
- LVM : 擴充套件檔案系統的容量LVM套件
- 擴充套件.Django-許可權系統套件Django
- [外掛擴充套件]系統主題管理套件
- win7系統谷歌瀏覽器新增擴充套件程式提示無法從該網站新增應用、擴充套件程式和使用者指令碼怎麼辦Win7谷歌瀏覽器套件網站指令碼
- 如何擴大c盤容量win10_win10系統怎麼擴充套件c盤空間Win10套件
- 擴充套件c盤空間有什麼辦法套件
- win10系統安裝Ae失敗提示常見可擴充套件平臺(cep)套件無法被載入怎麼辦Win10套件
- 表單驗證使用擴充套件套件
- 讀構建可擴充套件分散式系統:方法與實踐15可擴充套件系統的基本要素套件分散式
- uboot和系統移植擴充套件--主Makefile分析boot套件
- solaris11怎麼擴充套件資源池?solaris11擴充套件資源池的方法套件
- 在S/4HANA擴充套件欄位的Available Fields列表裡,看不到自己建立的擴充套件欄位該怎麼辦套件AI
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- 雜湊表擴充套件—點陣圖套件
- Sentinel 原理-如何為系統設定擴充套件點套件
- ubuntu24.04系統gnome46用到擴充套件Ubuntu套件
- win10系統chrome擴充套件程式安裝一直檢查怎麼修復Win10Chrome套件
- win10擴充套件螢幕怎麼設定_win10擴充套件螢幕的設定方法Win10套件
- Python為什麼能擴充套件Python套件
- 擴充套件工具套件
- Sanic 擴充套件套件
- Mybatis擴充套件MyBatis套件
- SpringMVC 擴充套件SpringMVC套件
- ORACLE 擴充套件Oracle套件