dubbo-zookeeper(續)

一、zookeeper集羣

顧名思義也就是多臺zookeeper服務以及多臺服務器共同協作。

在上一篇中我們已經把dubbo-consumer工程實現了,我們能夠看出來zookeeper默認監聽的端口號爲 2181, 相對來說這只是一臺zookeeper服務,在這種情況下我們也能實現多臺zookeeper服務。

1、首先啓動zookeeper服務,那麼此時端口號爲2181的zookeeper服務已經啓動了,接着修改zoo.cfg配置文件,將其屬性clientPort=2181改爲clientPort=2182或者2183等其他端口,然後再啓動zookeeper服務,那麼端口爲2182的zookeeper的服務便啓動了。(注意:剛纔啓動的端口號爲2181的zookeeper服務並未關閉)多次修改端口號並且啓動zookeeper服務,此時已經形成了多臺zookeeper服務了。

2、編寫多個類似於dubbo-provider工程的實例,並且分別他們的spring-dubbo-provider.xml文件中配置註冊中心:

<dubbo:registry address="zookeeper://localhost:2182"/>

或者

<dubbo:registry address="zookeeper://localhost:2183"/>

3、在名爲dubbo-consumer的maven工程中,修改其spring-dubbo-consumer.xml文件。添加多個註冊中心的配置如下:

<dubbo:registry address="zookeeper://localhost:2182"/>

<dubbo:registry address="zookeeper://localhost:2183"/>

....

並且添加多個暴露的接口配置如下:

<dubbo:reference id="testService2" interface="com.dubbo.test.inter.service.TestService2"/>

<dubbo:reference id="testService3" interface="com.dubbo.test.inter.service.TestService3"/>

這樣便可以從多個zookeeper服務中獲取暴露的遠程接口,並且作爲自己的業務開發使用

4、測試,跟之前測試一致

 ①啓動多個zookeeper服務

 ②啓動各個provider

 ③啓動各個consumer

 說到這裏,多臺zookeeper的集羣完成,然後對於多臺服務來說也沒有多大區別,也只不過是把同一個項目分別放到多個服務器中。

 二、web管理平臺

下載dubbo-admin-2.5.3.war 文件,把改文件放到tomcat的webapps目錄下,然後啓動zookeeper和Tomcat,在瀏覽器中輸入http://localhost:8080/dubbo-admin便可以查看

注意:如果JDK是1.8版本的,需要切換成1.7,因爲dubbo-admin-2.5.3.war文件對1.8版本的JDK存在兼容性問題,否則Tomcat啓動會失敗報錯。

官網:www.fhadmin.org

錯誤如下:
Bean property ‘URIType‘ is not writable or has an invalid

以下有兩種修改JDK版本的方式:

①方式一:

1) 修改bin文件夾下面的catalina.bat文件,把如下內容
rem ----- Execute The Requested Command ----------------------------------
echo Using CATALINA_BASE: %CATALINA_BASE% 
echo Using CATALINA_HOME: %CATALINA_HOME% 
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR% 
echo Using JAVA_HOME: %JAVA_HOME%
 
修改爲:
echo Using CATALINA_BASE: %CATALINA_BASE% 
echo Using CATALINA_HOME: %CATALINA_HOME% 
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR% 
echo Using JAVA_HOME: D:\Java\jdk1.7.0_79
 
2) 修改bin文件夾下面的setclasspath.bat文件,把如下內容:
rem Set standard command for invoking Java. 

rem Note that NT requires a window name argument when using start. 
rem Also note the quoting as JAVA_HOME may contain spaces. 
set _RUNJAVA="%JAVA_HOME%\bin\java" 
set _RUNJAVAW="%JAVA_HOME%\bin\javaw" 
set _RUNJDB="%JAVA_HOME%\bin\jdb" 
set _RUNJAVAC="%JAVA_HOME%\bin\javac" 
 官網:www.fhadmin.org

修改爲: 
rem Set standard command for invoking Java. 

rem Note that NT requires a window name argument when using start. 
rem Also note the quoting as JAVA_HOME may contain spaces. 
set _RUNJAVA="D:\Java\jdk1.7.0_79\bin\java.exe"

 
set _RUNJDB="D:\Java\jdk1.7.0_79\bin\jdb.exe"
 
②方式二:
直接從eclipse中切換JDK的版本
 
三、dubbo配置說明
<dubbo:service/> 服務配置,用於暴露一個服務,定義服務的元信息,一個服務可以用多個協議暴露,一個服務也可以註冊到多個註冊中心。

<dubbo:reference/> 引用服務配置,用於創建一個遠程服務代理,一個引用可以指向多個註冊中心。

<dubbo:protocol/> 協議配置,用於配置提供服務的協議信息,協議由提供方指定,消費方被動接受。

<dubbo:application/> 應用配置,用於配置當前應用信息,不管該應用是提供者還是消費者。

<dubbo:module/> 模塊配置,用於配置當前模塊信息,可選。
<dubbo:registry/> 註冊中心配置,用於配置連接註冊中心相關信息。

<dubbo:monitor/> 監控中心配置,用於配置連接監控中心相關信息,可選。
<dubbo:provider/> 提供方的缺省值,當ProtocolConfig和ServiceConfig某屬性沒有配置時,採用此缺省值,可選。
<dubbo:consumer/> 消費方缺省配置,當ReferenceConfig某屬性沒有配置時,採用此缺省值,可選。
<dubbo:method/> 方法配置,用於ServiceConfig和ReferenceConfig指定方法級的配置信息。
<dubbo:argument/> 用於指定方法參數配置。

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