設計思想
簡單就是美
淘寶開放平臺 -- 高性能,分佈式的任務調度系統
反模式-
Master - Slave架構,Slave想Master註冊,Master不知道Slave的具體信息。
Slave --> Master。這樣可以解決rehash,節點動態加入和退出等問題,但會引來其他問題。
業務邏輯的獨立線程池ThreadPool,與容器ServletContainer的ThreadPool相隔離,加上流控(負載控制),以保證不會讓系統崩潰。
請求異步處理,也就是說請求不是保證在一個線程上運行至結束的,有可能會被不同的線程調度,需要保證request和response的線程安全性。
同時由於改爲了事件監聽機制處理,會引入額外的複雜度。比如現場的保存/恢復,以及超時的處理(timeout問題是必須而又比較麻煩處理的)。
根據不同的場景如高IO,CPU等,選擇不同的優化策略,如磁盤IO換內存。
慢鏈接不可避免- LazyParser
序列化的性能優化是必須的,Java本身提供的序列化機制性能很差。
流控功能不可少-在超高併發壓力的情況下,限制請求數量,保證已經進入系統的用戶享受正常的服務質量
MapReduce思想 K - V
窮舉所有業務邏輯,轉換爲有限狀態集,以不變應萬變。每個任務都是可自我描述的,而不能依賴與其他上下文。
Java編程的幾個關鍵點
1. 內存
參見技術文檔
http://blog.csdn.net/cenwenchu79