Java sample--Dubbo協議

一、RPC原理介紹

    RPC(Remote Procedure Call Protocol)- 遠程過程調用協議,一個通俗的描述是:客戶端在不知道調用細節的情況下,調用存在於遠程計算機上的某個對象,就像調用本地應用程序中的對象一樣。比較正式的描述是:一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。

    1、這個過程用一張圖描述如上,調用方與服務方的處理步驟都是非常清晰的。 這個過程存在最大的問題是什麼呢?

回答:調用方太麻煩了,每次都要關注很多底層細節
( 1 )入參到字節流的轉化,即序列化應用層協議細節
( 2 ) socket 發送,即網絡傳輸協議細節
( 3 ) socket 接受
( 4 )字節流到出參的轉化,即反序列化應用層協議細節

    2、能不能調用層不關注這個細節呢?能不能降低各類複雜性?
RPC 框架要向調用方屏蔽各種複雜性,要向服務提供方也屏蔽各類複雜性 :
( 1 )調用方感覺就像調用本地函數一樣
( 2 )服務提供方感覺就像實現一個本地函數一樣來實現服務
所以整個 RPC 框架又分爲 client 部分與 server 部分,負責把整個非( 1 )( 2 )的各類複雜性屏蔽,這些複雜性就是 RPC 框架的職責

再細化一些, client 端又包含:序列化、反序列化、連接池管理、負載均衡、故障轉移、隊列管理,超時管理、異步管理等等等等職責。
server 端包含:服務端組件、服務端收發包隊列、 io 線程、工作線程、序列化反序列化、上下文管理器、超時管理、異步回調等等等等職責

 

二、Dubbo架構介紹

    Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案
其核心部分包含:
1. 遠程通訊: 提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應”模式的信息交換方式。
2. 集羣容錯: 提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持。
3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器
架構圖:
                       
    節點角色說明
節點    角色說明
Provider    暴露服務的服務提供方
Consumer    調用遠程服務的服務消費方
Registry    服務註冊與發現的註冊中心
Monitor    統計服務的調用次數和調用時間的監控中心
Container    服務運行容器

0、服務容器負責啓動,加載,運行服務提供者。
1、服務提供者在啓動時,向註冊中心註冊自己提供的服務。
2、服務消費者在啓動時,向註冊中心訂閱自己所需的服務。
3、註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送       變更數據給消費者。
4、服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如       果調用失敗,再選另一臺調用
5、服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數       據到監控中心

 

三、Java Sampler

核心步驟:
    public Arguments getDefaultParameters();設置可用參數及的默認值;
    public void setupTest(JavaSamplerContext arg0):每個線程測試前執行一次,做一些初始化工作;
    public SampleResult runTest(JavaSamplerContext arg0):開始測試,從arg0參數可以獲得參數值,這是測試主體,runTest()方法返回一個SampleResult測試結果;
    public void teardownTest(JavaSamplerContext arg0):測試結束時調用
 

四、Java-dubbo sampler開發步驟

1、測試dubbo協議,就是要模擬消費端
2、拿到服務端的interface、method
3、java sampler腳本
    A、getDefaultParameters()    設置參數及默認值    
    B、setupTest()    dubbo連接初始化
    C、runTest()    發送請求,需要做Jmeter設置:起止時間、requestdata、responsedata,responsecode、responsemessage
    D、調試
4、打jar包java sampler,放到apache-jmeter-3.1\lib\ext下面
5、開始創建腳本

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章