閱讀408 返回首頁    go 阿裏雲 go 技術社區[雲棲]


其他事項

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結構: image
    • 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 : 線程的狀態: image

最後更新:2017-10-14 21:03:11

  上一篇:go 雲棲大會黑客鬆閉幕,寵物小程序獲一等獎
  下一篇:go 雲棲大會:數據安全是商業落地的重要基石