dubbo服務的配置與使用,以及怎麼在呼叫本地的dubbo服務。
阿新 • • 發佈:2018-12-13
- 隨著專案的精分,以及小型化,一個大的專案會被拆分為數個小而精簡的專案。會分為前端專案,介面專案以及服務專案等等。那麼前端介面怎麼來呼叫其他的服務專案呢,這時就需要用到dubbo服務來呼叫這些服務。
2.在使用dubbo服務之前,需要先了解dubbo服務的執行原理。dubbo服務主要分為四個模組,有三大主要功能模組:提供者,使用者,註冊中心,如下圖:
圖中server就是服務提供者,它會把自己能提供的服務通過配置檔案提供到zookeeper,然後client使用者在需要用到這些服務的時候,就會到zookeeper中尋找自己所需要的服務,這時就可以成功的引用到這些服務了。
3.提供服務的配置檔案:
具體原理同下:
<!--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: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"/>
然後啟動你本地服務的main方法,在你啟動本地服務的main方法之後,服務就會被自動註冊的註冊中心zookeeper中,這時,註冊中心就會有兩個一樣的服務,然後你把開發環境中的服務停掉,只留下自己本地的服務,這樣就可以呼叫你本地的服務了。