分布式系统之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