一、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
以下有兩種修改JDK版本的方式:
①方式一:
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 CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
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"
修改爲:
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"
<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/> 用於指定方法參數配置。