分布式系統之TR服務簡析


 

1. 分布式系統sofa框架的tr服務提供端,需要監聽某一個端口,接收tr服務請求。

     采用線程池技術,可同時接收多個請求,然后交給Sofa tr服務請求處理器進行處理。  

  public class ThreadPoolExecutor extends AbstractExecutorService {

    public void run(){      

      try {
        Runnable task = firstTask;
        firstTask = null;
        while (task != null || (task = getTask()) != null) {
          runTask(task);            //執行tr遠程服務的調用
          task = null;
        }
      } finally {
        workerDone(this);
      }

    }

  }

 

2.  TR服務提供端請求處理器來處理SofaHSFRequest請求

  (1) 打印tr請求日志;

  (2) 獲取tr請求參數: tr服務名稱、應用名稱、方法名稱;

  (3) 獲取提供tr服務的接口實現類實例

  (4) 獲取要調用tr服務的方法

  (5) 通過動態代理,method.invoke(),獲取tr服務接口方法返回值

  (6) 設置返回數據

  (7) 打印執行tr服務后,即將返回的數據信息

  (8) tr服務返回   

  //源碼比較簡單,通過下面截圖,就可以了解tr服務的服務提供端的請求處理過程

      

      

 

3.  TR服務消費端,調用TR遠程服務過程簡析

  例如:在A系統的SceneParaFacadeClientImpl.java中,調用B系統的findSceneParaPages()方法,如下圖14行所示:

    

      

  

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM