1. 程式人生 > >dubbo 學習筆記 -- provider端

dubbo 學習筆記 -- provider端

服務端的配置檔案:    provider.xml

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.  xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5.  xsi:schemaLocation="http://www.springframework.org/schema/beans          
  6.  http://www.springframework.org/schema/beans/spring-beans.xsd          
  7.  http://code.alibabatech.com/schema/dubbo           
  8.  http://code.alibabatech.com/schema/dubbo/dubbo.xsd         ">
  9. <!-- Application name -->
  10. <dubbo:applicationname="Frame"/>
  11. <!-- registry address, used for service to register itself -->
  12. <dubbo:registryaddress="multicast://224.5.6.7:1234"
    />
  13. <!-- expose this service through dubbo protocol, through port 20880 -->
  14. <dubbo:protocolname="dubbo"port="20880"/>
  15. <!-- which service interface do we expose? -->
  16. <dubbo:serviceinterface="merchant.shop.service.IHelloService"ref="helloService"/>
  17.     <!-- bean配置 -->
  18.     <
    beanid="helloService"
  19.         class="merchant.shop.service.impl.HelloServiceImpl">
  20.     </bean>
  21. </beans>


此處interface的地址要與consumer端的一致,所以在服務端工程中新建了和客戶端工程一樣的路徑來儲存service

spring 配置檔案 : providerApplicationContext.xml

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  5.     <!-- spring 與 ibatis 銜接 -->
  6.     <beanid="sqlMapClient"class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  7.         <propertyname="configLocation"value="provider-sql-map-config.xml"></property>
  8.         <propertyname="dataSource"ref="dataSource"/>
  9.     </bean>
  10.     <!-- 資料來源基本配置 -->
  11.     <beanid="dataSource"
  12.         class="org.springframework.jndi.JndiObjectFactoryBean">
  13.         <propertyname="jndiName">
  14.             <value>java:/comp/env/test</value>
  15.         </property>
  16.     </bean>
  17.     <!-- 事務配置 -->
  18.      <beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  19.     <propertyname="dataSource"ref="dataSource"></property>
  20.     </bean>
  21. <!-- 宣告式事務管理 -->
  22.     <beanid="baseTransactionProxy"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"abstract="true">
  23.         <propertyname="transactionManager"ref="transactionManager"></property>
  24.         <propertyname="transactionAttributes">
  25.             <props>
  26.                 <propkey="add*">PROPAGATION_REQUIRED</prop>
  27.                 <propkey="edit*">PROPAGATION_REQUIRED</prop>
  28.                 <propkey="*">PROPAGATION_REQUIRED,readOnly</prop>
  29.             </props>
  30.         </property>
  31.     </bean>
  32. </beans>

服務端需要啟動的兩個檔案如下 :

  1. package com.sitech.comm.dubbo;  
  2. import org.springframework.context.ApplicationContext;  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;    
  4. publicclass Provider {         
  5.     publicstaticvoid init() throws Exception {           
  6.         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"});           
  7.         context.start();    
  8.         singleton();  
  9.     }  
  10.     publicstatic ApplicationContext context = null;  
  11.      publicstatic ApplicationContext singleton() {  
  12.             if (context == null) {  
  13.                 context = new ClassPathXmlApplicationContext(new String[] {"providerApplicationContext.xml"});           
  14.             }  
  15.              return context;  
  16.      };  
  17. }   
  1. package com.sitech.comm.dubbo;  
  2. import javax.servlet.ServletException;  
  3. import javax.servlet.http.HttpServlet;  
  4. import com.sitech.comm.log.LogWritter;  
  5. publicclass ProviderInit extends HttpServlet {  
  6.     publicvoid init() throws ServletException {  
  7.         try {  
  8.             System.out.println("初始化dubbo服務端");  
  9.             Provider.init();  
  10.         } catch (Exception e) {  
  11.             System.out.println("初始化dubbo服務端失敗");  
  12.         }  
  13.     }  
  14. }  


web.xml 中增加啟動如下 :

  1. <servlet>
  2.         <servlet-name>ProviderInit</servlet-name>
  3.         <servlet-class>
  4.             com.sitech.comm.dubbo.ProviderInit  
  5.         </servlet-class>
  6.         <load-on-startup>1</load-on-startup>
  7.     </servlet>


consumer客戶端就可以遠端呼叫另一個工程的服務了

這裡出問題,一般都是配置檔案的問題,如資料庫的連線,spring 與 ibatis 銜接 時的配置檔案等

相關推薦

dubbo 學習筆記 -- provider

服務端的配置檔案:    provider.xml <?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://ww

Dubbo學習筆記:No provider available for the service ...異常問題的解決

剛開始學習dubbo,先跑了一下github上面down下來的demo,開洞zookeeper,執行provider和consumer,實現遠端呼叫。然後就自己敲程式碼,對邏輯做一點靈活性的改變。我也指導真正敲起程式碼來,就會踩到坑。果然,提供者能夠成功註冊,執行消費者就找

dubbo學習筆記

變化 頁面開發 love 分布式服務 keyword link ide 開發 容量 一、Dubbo 創造者對於Dubbo的價值與意義作出過精辟的見解 1、單一應用架構 網站流量很小,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本 此時,用於簡化增刪改查工作量的

Dubbo學習筆記5:Dubbo整體框架分析

什麽 資源 AD 文本文件 font ren factor exporter 服務提供者 Dubbo的分層架構 本文將簡單介紹Dubbo的分層架構設計,如下圖是Dubbo官方的整體架構圖: Dubbo官方提供的該架構圖很復雜,一開始我們沒必要深入細節,下面我們簡單介紹

Dubbo學習筆記10:Dubbo服務消費方啟動流程源碼分析

exec checked 自己 當前 In rpc mod png collect 同理我們看下服務消費端啟動流程時序圖: 在《Dubbo整體架構分析》一文中,我們提到服務消費方需要使用ReferenceConfig API來消費服務,具體是調用代碼(1)get()方法來

dubbo學習筆記(一)

獲取 linu pan 概念 規範 href 面向 打包 mon 學習之前先說明一下其他概念方便了解dubbo RPC概念:   是指遠程過程調用,是一種進程間的通信方式。這是一種思想,而不是規範。   (允許程序調用遠程的過程或函數,並且讓程序員無論是調用本地還是遠程的函

阿里巴巴分散式服務框架dubbo學習筆記

Dubbo是什麼? Dubbo是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這樣的分散式服務框架的需求,並且本質上是個服務呼叫的東東,說

9.redis學習筆記-客戶&伺服器.md

12. 客戶端 12.1. 客戶端屬性 客戶端狀態包含的屬性可以分為兩類: 通用屬性,很少與特定功能相關,無論客戶端執行什麼工作,都要用到這些屬性 與特定功能相關的屬性,比如操作資料庫要用到的db屬性和dictid屬性 12.1.1. 套接字描述 客戶端狀

Dubbo學習筆記8:Dubbo的執行緒模型與執行緒池策略

Dubbo預設的底層網路通訊使用的是Netty,服務提供方NettyServer使用兩級執行緒池,其中 EventLoopGroup(boss) 主要用來接受客戶端的連結請求,並把接受的請求分發給 EventLoopGroup(worker) 來處理,boss和worker執

MongoDB學習筆記~客戶命令列的使用

回到目錄 當我們從MongoDB網站下載安裝包之後,它會伴隨有一系列的工具,伺服器程式mongod是我們耳熟能詳的了,客戶端mongo和效能檢測mongostat我們可能就沒有用過了,今天主要是介紹一下mongo這個客戶端命令列工具的使用。 測試環境:服務端:linux版的mongod 2.6.9   

C語言學習筆記--小模式和大端模式

一、概念:     大端(儲存)模式:是指一個數據的低位位元組序的內容放在高地址處,高位位元組序存的內容放在低地址處。     小端(儲存)模式:是指一個數據的低位位元組序內容存放在低地址處,高位位元組序的內容存放在高地址處。 二、程式碼 #include

Maven+Spring+Dubbo學習筆記

學習參考文件  http://dubbo.io/User+Guide-zh.htm  本案例使用maven建立,關於如何建立可以參考我另一篇部落格  http://blog.csdn.net/a_piaoyouareminemine/article/details/499

Dubbo學習筆記:註冊到zookeeper並實現遠端呼叫

我們選擇zookeeper作為註冊中心。 一、首先要下載zookeeper,把程式解壓,進入conf,把zoo_sample.cfg修改為zoo.cfg。進入bin資料夾,在這裡開啟命令列,輸入zkserver.cmd,這樣就啟動了zookeeper。 可以看出,zook

dubbo學習筆記dubbo-common之動態擴充套件extension

extension 動態擴充套件包,dubbo裡面有很多 @SPI  @Activate @Adaptive 註解, 同時也有許多配置檔案。 如下面的路徑 private static final String SERVICES_DIRECTORY = "MET

Dubbo學習筆記(二)

三、小demo~ 環境 jdk1.7+maven+springmvc+tomcat7 1.引入dubbo的jar包 在pom.xml檔案中加入: <dependency> <groupId>com.al

dubbo學習筆記 第一章 zookeeper安裝配置

       dubbo的實際使用中,基本都是使用zookeeper來管理它的服務,以及實現分散式呼叫。至於zookeeper是什麼,具有什麼使用者,大家可以百度搜索瞭解一下。實際生產環境中,zookeeper的應用服務數目,基本都是奇數個,這是由於它的選舉演算法決定的:z

Dubbo學習筆記(1)

1.1 Dubbo介紹 官網:http://dubbo.io/ 上面紅色框翻譯後:一個高新能的,基於Java的,開源的RPC框架 Dubbo是一個框架 Dubbo是一個分散式框架,致力於提供高新能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案(

Dubbo學習筆記(一)—— 建立一個簡單的Dubbo入門專案演示HelloWorld

一、Dubbo簡介1、dubbo是什麼?▶ 一個分散式服務框架▶ 一個RPC遠端服務呼叫方案▶ 一個SOA服務治理方案2、dubbo架構圖3、節點說明Provider:暴露服務的服務提供方Consumer:呼叫遠端服務的服務消費方Registry:發現並註冊服務的服務註冊中心

Dubbo學習筆記001---分散式服務呼叫_Dubbo簡介_依賴zookeeper做為註冊中心進行服務註冊與發現

Dubbo是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。Dubbo是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。

dubbo學習筆記(3):快速搭建

imp 阿裏巴巴 zkclient 80端口 spa gin zh-cn work 遠程服務調用 搭建一個簡單的dubbo服務 參考地址: dubbo官網:http://dubbo.apache.org/zh-cn/docs/user/references/registry