- 分布式實時處理系統:原理、架構與實現
- 盧譽聲
- 824字
- 2019-01-03 10:50:21
1.3.2 高可擴展性
高可擴展性是指系統能夠在運行過程中自由地對系統內部節點或現有功能進行擴充,而不影響現有服務的運行。傳統的軟件系統或單機軟件在更新過程中,往往會先停機,然后升級,當一切更新配置都結束后,最后重新啟動應用程序。另外,很多傳統的系統是“閉環系統”,其擴展能力非常有限,它們絕大多數使用私有協議進行消息通信,缺乏開放的API也是導致系統擴展能力低下的主要原因之一。因此,在對現有系統進行擴展的過程中,由于私有接口的局限性和不完善性,擴展工作變得異常復雜,有時甚至需要對接口進行更新和定義,才能滿足需求,而與其他系統進行集成則變得更加困難:沒有開放接口,需要中間層做轉換。這些原因都導致了系統在擴展性方面存在難度大和成本高的問題。
我們來看一個現代分布式系統設計的案例:Storm實時處理系統(以下簡稱Storm)。在Storm中,節點主要由Spout和Bolt兩大類組成,我們可以把這種關系類比到MapReduce過程,Spout作為消息源會將搜集到的數據發送到Storm計算拓撲中,再通過一系列消息處理單元Bolt進行分布式處理,最終將處理結果合并得到最終結果。在這里,消息處理單元Bolt是分布式數據處理的核心組件,每當消息處理單元的數據處理完成后,它就會把當前階段處理的數據發送給下一級消息處理單元做進一步處理。那么,這些消息處理單元之間的元組數據則主要通過開源JSON格式進行傳遞。利用這種機制,我們看到了一個很好的現象,那就是我們可以隨意在消息處理單元后進行擴充,如果數據處理的結果還達不到我們的需求,只需在Storm計算拓撲中繼續追加新的消息處理單元,直至滿足我們的需求。Storm使用JSON作為節點之間元組數據發送的紐帶,一方面解決了私有接口難以擴展和集成的問題,另一方面解決了Storm拓撲結構的后續節點擴充問題。圖1-1所示為基本的Storm實時處理系統拓撲結構圖,其中每個方框都是一個節點。

圖1-1 基本的Storm實時處理系統拓撲結構
因此,在設計和開發我們自己的實時處理系統的過程中,高可擴展性是必須考慮的問題之一,我們會在后續章節進行編程實戰的時候對此問題做深入分析。
- Cybersecurity:Attack and Defense Strategies
- Linux運維實戰:CentOS7.6操作系統從入門到精通
- 操作系統基礎與實踐:基于openEuler平臺
- Haskell Financial Data Modeling and Predictive Analytics
- SOA實踐者說
- SharePoint 2013 應用開發實戰
- Windows Phone應用程序開發
- Instant Optimizing Embedded Systems using Busybox
- Linux系統安全基礎:二進制代碼安全性分析基礎與實踐
- 一學就會:Windows Vista應用完全自學手冊
- 計算機應用基礎(Windows 7+Office 2016)
- Linux基礎使用與案例
- 精解Windows 10
- 操作系統之哲學原理第2版
- Angular權威教程