構建大型業務系統過程中需要考慮的問題
為開發大型業務系統,開發者能夠列舉出應該烤爐的問題列表
1.遠端方法呼叫。開發者需要藉助於網路連線,實現客戶和伺服器直接的連線和通訊。其中包括分發方法請求、代理引數等。
2.負載均衡。客戶應該連線到負荷最輕的那臺伺服器上。一旦伺服器超負荷執行,則其它伺服器應該能夠替它分擔負荷。
3.透明的容錯。如果伺服器或者網路癱瘓,在不中斷客戶服務的前提下,能否將客戶請求分發給其它伺服器?如果能,則響應時間多長?響應時間是否能滿足需求?
4.後端整合。開發者需要開發如下兩方面的內容:其一,將業務資料持久化到RDBMS中。其二,同現有遺留系統的整合。
5.事物。一旦不同客戶同時反覆問同一行RDBMA表資料,該如何處理?如果RDBMS癱瘓該如何處理?事物能夠結覺以上問題。
6.群集。當某伺服器癱瘓時,其上的狀態資訊怎麼處理?需要在所有伺服器中提前複製這類資訊嗎?而且,客戶能否使用其它伺服器?解決這些問題就要使用群集了。
7.動態重新部署。如果網站處於執行狀態,該如何實現軟體的更新操作?難道需要暫時關機,還是讓它一直處於執行中?動態重新部署可以解決。
8.完全關機。如果需要關閉伺服器,是否能夠順利的完成系統的完全關機?即不中斷那些正在使用當前伺服器提供服務的客戶。
9.日誌和評審。一旦系統執行出現錯誤,能否找到相關日誌資訊,以解決問題?即使沒有出錯日誌資訊有幫助於開發者除錯並發現問題。
10.系統管理,一旦出現災難性失敗事件,誰負責監控系統?因此,需要藉助於監控軟體,實現系統管理能力。
11.執行緒。如果存在多個使用者連線到伺服器,則伺服器需要具備同時處理多個客戶請求的能力,因此必須具備多執行緒的能力。
12.面向訊息的中介軟體。對於有些客戶和伺服器處於鬆耦合的場景,開發者需要用基於訊息的方式處理客戶請求,因此,此時需要藉助於基礎框架完成訊息的處理。
13.物件生命週期。伺服器能夠依據客戶請求數量的大小,而啟用或銷燬現存物件。
14.資源池。如果客戶當前並沒有使用伺服器,則需要將其佔有的伺服器資源返還給資源池,從而供其他客戶使用,具體資源有:Socket(如資料庫連線)、伺服器中的啟用物件等。
15.安全性,伺服器和RDBMS必須確保不會受到肇事者的破環。因此,需要依據使用者的相應角色而授予適當的許可權,即對其訪問的操作授權。
16.快取。假如存在如下場景:所有客戶需要共享一些RDBMS中的資料,如產品分類資訊,此時,伺服器是否還需要蜂聚每次客戶請求去RDBMS中提取這些資料呢?開發者應該清楚:將資料存放在記憶體中是較好的解決辦法,因為,這樣能夠避免多次訪問網路中的RDBMS.