其他事項
1 高質量分布式應用:
高性能 ,可伸縮,高可用,低延遲的要求.同時保證一致性,容錯性,可恢複性和安全性
- 1:
可伸縮性:
垂直伸縮時降低鎖競爭,水平伸縮時常用的分布式緩存,分布式文件係統等方法 - 2:
高可用
: 均衡負載, 構建可容錯,對資源使用有限製的係統 -
3: 實現SOA時,可參考的概念:
SCA
,ESB
和業界的實現SCA
ESB
,1: SCA: Service Component Architecture:
2: ESB:核心思想是基於中間件來實現係統的交互.基於消息中間件所構建的此係統交互的中間場所稱為總線
,係統間交互數據采用統一的消息格式,由總線完成消息的轉化,路由,發送到相應的目標應用,(1)標準的消息通信格式,ESB係統中要定義係統發送以及接收消息時的消息格式,以便各個係統保持同樣的方式與總線通信(2) 消息路由,是指當總線接收到消息後,根據消息中的數據來決定需要調用的係統.更為複雜的情況時,還可以基於消息路由實現功能編排,即當某個功能需要有多個係統共同完成時,可以在總線上以流程的方式編排訪問係統的順序.例如某功能需要首先訪問A係統,然後根據A係統返回的結果來決定訪問B係統還是C係統 (3)支持多種的消息交互類型: 支持 請求/響應和發布/訂閱等方式, 請求/響應方式會更加方便實現同步請求, 發布/訂閱方式則以更加方便實現異步的消息廣播. (4) 支持多種網絡協議,總線要和多個係統進行交互,通常要支持多種網絡協議,例如:HTTP/IP UDP/IP HTTP (5)支持多種數據格式並能進行互相轉換,多個係統需要發送消息到總線,並由總線將消息轉發,但各個係統消息格式可能不一致,此時需要總線支持數據轉換.- 4: classloader結構:
- 5:
JVM
采用了invokestatic(靜態) ,invokevirtual (實例),invokeinterface(接口方法)和invokespecial(調用private方法和編譯後的)四個指令來執行不同的方法調用 - 6: 對於方法的指令解釋執行,執行方式為經典的FDX循環方式,即:獲取下一條指令,解碼並分派,然後執行,在實現FDX循環時有: switch-threading,token-threading,direct-threading,subroutine-threding,inline-threading 等多種方式. Sun JDK采用token-threading.也做了一些其它優化: 棧頂緩存,(將棧頂的值緩存在寄存器) (2)部分棧幀共享, (3)在解釋執行特殊情況會直接執行機器指令: Math.sin Unsafe.compareAndSwapInt
- 7:
方法區:
存放了要加載類的信息(名稱,修飾符等),類中的靜態變量,類中定義為final類型的常量,類中的Field信息,類中的方法信息.當開發人員在程序中通過Class對象的getName isInterface等方法來獲取信息時.這些數據都來自方法區域. 也是全局共享
- 8:
對象的分配:
(堆
TLAB(Thread Local Allocator ByteBuf) 在eden區
) -9 :線程的狀態:
- 4: classloader結構:
最後更新:2017-10-14 21:03:11