Dubbo-admin無法顯示Group分組信息
背景:
在首次使用Dubbo的時候。我們可能都會使用Dubbo-admin來監控服務的提供者和消費者,可是在自己的生產者成功執行的時候。在Dubbo-admin卻看不到不論什麽信息。假設在確保代碼的正確無誤。無法解決問題,有可能是由於Group造成的,即是在進行註冊的時候,在註冊中心加入了分組。
解決
1、在服務提供者不加入group分組信息的時候,會默認註冊到zookeeper的dubbo組下.
在zookeeper的bin文件夾下(我的是/data/home/server/zookeeper-3.4.6/bin)。使用例如以下命令進入client:
./zkCli.sh -server 127.0.0.1 :2181
成功進入之後。顯演示樣例如以下:
使用ls / 顯示已經存在的節點信息:
能夠看到在默認的時候僅僅有dubbohe zookeeper(LTS 是後期進行的分組)
註:能夠使用get /dubbo來查看dubbo節點信息,還有其它命令。詳見:http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html
2、執行生產者,將dubbo服務註冊到不同的組中:
<dubbo:application name="${zkServiceAppName}" owner="allen.xu" organization="MyPIP" />
<dubbo:registry address="${zookeeper}" timeout="500000" group="${jhd.group}" id="mypip_id"/>
<!-- 暴露出去的接口-->
<bean id="airlineWhiteListFacade" class="com.flightroutes.flight.oms.facade.oms.impl.AirlineWhiteListFacade"/>
<dubbo:service
ref="airlineWhiteListFacade"
interface="com.flightroutes.flight.oms.facade.oms.IAirlineWhiteListFacade"
version="1.0.0"
cluster="failfast"
executes="10"
timeout="500000"
registry="mypip_id">
</dubbo:service>
zookeeper=zookeeper://127.0.0.1:2181
dubbo.port=30889
dubboLog.level =9
#mypip
zkServiceAppName=Jhd_Security
mypip.group=JhdGroup
能夠看到我在代碼中加了一個分組信息。jhd.group。為JhdGroup,將生產者部署之後再次查看zookeeper註冊中心
3、在zookeeper祖冊中心能夠看到,可是在dubbo-admin中並沒有監控的解決方法。
在註冊中心已經有該分組信息,可是在dubbo-admin看不到信息,這是由於在dubbo-admin默認查找節點的時候會在dubbo這個節點上找,所以僅僅要是你的group名為dubbo是能夠查看到(默認的也是dubbo)。
須要改動兩個內容:
- dubbo.propertoes加入分組配置,當中第二行就是須要加入的分組
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.group=JhdGroup
dubbo.admin.root.password=
dubbo.admin.guest.password=
- 在dubbo-admin/webapps/ROOT/WEB-INF/classes/META-INF/spring文件夾下的dubbo-admin.xml
在registry這一行中加入group=”${dubbo.registry.group}”,例如以下:
<dubbo:registry address="${dubbo.registry.address}" group="${dubbo.registry.group}" check="false" file="false" />
最後就能夠在dubbo-admin中查找到該分組信息了
Dubbo生產者消費者配置文件
1、生產者配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="${zkServiceAppName}" owner="allen.xu" organization="MyPIP"/>
<dubbo:registry address="${zookeeper}" timeout="500000" group="${mypip.group}" id="mypip_id"/>
<!-- 暴露出去的接口-->
<bean id="airlineWhiteListFacade" class="com.flightroutes.flight.oms.facade.oms.impl.AirlineWhiteListFacade"/>
<dubbo:service
ref="airlineWhiteListFacade"
interface="com.flightroutes.flight.oms.facade.oms.IAirlineWhiteListFacade"
version="1.0.0"
cluster="failfast"
executes="10"
timeout="500000"
registry="mypip_id">
</dubbo:service>
</beans>
2、生產者配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- consumer application name -->
<dubbo:application name="consumer-of-sayHello-app" owner="allen.xu" organization="MyPIP"/>
<!-- registry address, used for consumer to discover services -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" timeout="500000" group="${mypip.group}" id="mypip_id"/>
<!--<dubbo:consumer timeout="5000"/>-->
<!-- which service to consume? -->
<dubbo:reference id="airlineWhiteListFacade"
interface="com.flightroutes.flight.oms.facade.oms.IAirlineWhiteListFacade"
version="1.0.0"
cluster="failfast"
timeout="500000"
registry="mypip_id"/>
</beans>
完整Dubbo的使用案例:https://git.oschina.net/xuliugen/dubbodemo.git
Dubbo-admin無法顯示Group分組信息