dubbo服務的 遠程調用

首先dubbo 和spring 是無縫整合的,先看下配置文件 提供端的,


<!-- 具體的實現bean -->
   <bean id="testService" class="com.dubbo.provider.impl.TetsServiceImpl" />

   <!-- 提供方應用信息,用於計算依賴關係 -->
   <dubbo:application name="xixi_provider" />

   <!-- 使用multicast廣播註冊中心暴露服務地址 <dubbo:registry address="multicast://224.5.6.7:1234" 
      /> -->

   <!-- 使用zookeeper註冊中心暴露服務地址 -->
   <!--<dubbo:registry address="zookeeper://10.28.53.83:2181" />
-->

   <dubbo:registry address="zookeeper://127.0.0.1:2181" />


   <!-- 用dubbo協議在20880端口暴露服務 -->
   <dubbo:protocol name="dubbo" port="20880" />

   <!-- 聲明需要暴露的服務接口 -->
   <dubbo:service interface="com.dubbo.provider.TetsService"
      ref="testService" />

大概就是這樣,一些標籤 和bean實例 接口service層    注意zookeeper  ip和端口配置


在看消費端


<!-- 消費方應用名,用於計算依賴關係,不是匹配條件,不要與提供方一樣 -->
   <dubbo:application name="test_consumer" />

   <!-- 使用zookeeper註冊中心暴露服務地址 -->
   <!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> -->
<!--
   <dubbo:registry address="zookeeper://10.28.53.83:2181" />
-->

   <!-- 使用zookeeper註冊中心暴露服務地址 -->
   <dubbo:registry address="zookeeper://127.0.0.1:2181" />

   <!-- 生成遠程服務代理,可以像使用本地bean一樣使用demoService -->
   <dubbo:reference id="testService"
      interface="com.dubbo.provider.testService" />

注意的問題:在消費端要引入提供端的一些依賴,實體 服務層等等, zookeeper服務啓動正常,

最後再通過單例dubbo和spring整合, 如下


public class DubboService {
   /** 單例對象 **/
   public static final DubboService me = new DubboService();
   /** spring上下文 **/
   private ClassPathXmlApplicationContext context = null;
   private final static String providerConfig = "applicationContext-mybatis.xml";
   
   
   public DubboService() {
      loadRpcConfig();
   }

   /**
    * 加載RPC服務
    */
   protected void loadRpcConfig(){
      context = new ClassPathXmlApplicationContext(new String[] {providerConfig});
      context.start();
   }
   
   /**
    * 通過引用id獲取遠程服務對象實例
    * @param referenceId
    * @return 返回遠程服務對象實例
    */
   public Object getRpcService(String referenceId){
      return context.getBean(referenceId);
   }
}

最後 可以在項目中調用別的服務接口了,  待續...........

























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