1. 程式人生 > >dubbo服務的配置與使用,以及怎麼在呼叫本地的dubbo服務。

dubbo服務的配置與使用,以及怎麼在呼叫本地的dubbo服務。

  1. 隨著專案的精分,以及小型化,一個大的專案會被拆分為數個小而精簡的專案。會分為前端專案,介面專案以及服務專案等等。那麼前端介面怎麼來呼叫其他的服務專案呢,這時就需要用到dubbo服務來呼叫這些服務。

       2.在使用dubbo服務之前,需要先了解dubbo服務的執行原理。dubbo服務主要分為四個模組,有三大主要功能模組:提供者,使用者,註冊中心,如下圖:
   圖中server就是服務提供者,它會把自己能提供的服務通過配置檔案提供到zookeeper,然後client使用者在需要用到這些服務的時候,就會到zookeeper中尋找自己所需要的服務,這時就可以成功的引用到這些服務了。

3.提供服務的配置檔案:

具體原理同下:

<dubbo:application name="wallet_user_service"></dubbo:application>//name是專案的名稱
<!--zookeeper註冊中心 -->
<dubbo:registry protocol="zookeeper" address="${ZOOKEEPER_REGISTRY_URL}" />//說明使用的註冊中心是zookeeper,註冊中心不止一個。address是你註冊中心的地址,也就是你去哪裡註冊服務
<dubbo:consumer timeout="30000"></dubbo:consumer>

<dubbo:protocol name="dubbo" port="${MOBILE_SEC_DUBBO_PORT}"></dubbo:protocol>

<dubbo:service interface="com.pisgah.mobile.mng.userSerivice.UsrBasicService" 
ref="usrBasicService"></dubbo:service> //要和使用服務的配置檔案一致。
<bean id="usrBasicService" class="com.pisgah.mobile.mng.userServiceImpl.UsrBasicServiceImpl"/>

4.使用服務的配置檔案:
<!-- dubbo配置 -->
<dubbo:application name="wallet-pre"></dubbo:application>//name是專案的名稱
<dubbo:consumer timeout="30000" retries="0" cluster="failfast"/>
<dubbo:registry protocol="zookeeper" address="${zkaddress}"/>//說明使用的註冊中心是zookeeper,註冊中心不止一個。address是你註冊中心的地址,也就是你去哪裡尋找服務
//下面是一個例子:id是你服務的名稱,interfere是引用服務的地址,要和提供方配置檔案中的地址一致。
<!-- 個人使用者服務--> 
<dubbo:reference id="usrBasicService" interface="com.pisgah.mobile.mng.userSerivice.UsrBasicService"  timeout="3000000" check="false" />

   這樣配置完成之後,就可以在專案中引用這些服務了,例如:

    @Autowired

    private UsrBasicService usrBasicService ;

  uInfo = usrBasicService.getUsrBasicInf(uInfo);

通過這樣三步就可以在class中使用服務。

5.如果你的服務需要實時的修改來判斷是否正確,你需要在你本地啟動你的服務,使用服務的配置檔案這樣寫:

<dubbo:reference id="bankCardService" interface="com.pisgah.mobile.mng.userSerivice.IBankCardService" timeout="3000000"  check="false" url="dubbo://10.6.9.116:20309/com.pisgah.mobile.mng.userSerivice.IBankCardService"/>

其中10.6.9.116應該是你本地的ip號,切記不能寫成127.0.0.1。20309是你服務的埠號,可以在zookeeper中看到,後邊地址和interfere中一樣。

然後啟動你本地服務的main方法,在你啟動本地服務的main方法之後,服務就會被自動註冊的註冊中心zookeeper中,這時,註冊中心就會有兩個一樣的服務,然後你把開發環境中的服務停掉,只留下自己本地的服務,這樣就可以呼叫你本地的服務了。