dubbo給我們提供了現成的后臺管理網站,專門管理這些服務,應用,路由規則,動態配置,訪問控制、權重控制、負載均衡等等,還可以查看系統日志,系統狀態,系統環境等等,功能很是強大,通過這個后臺,可以可視化控制你的服務和應用。
接下來我們來簡單的看看后臺系統,以及簡單修改下權重控制啥的看看效果吧!我們將dubbo-admin-2.5.4.war包放到tomcat容器中(如果沒有dubbo-admin-2.5.4.war,可以到http://dubbo.io/查找源碼位置:https://github.com/alibaba/dubbo,進入之后,下載源碼),
Github上的內容:
其中dubbo-admin就是我們所需的管控臺的源碼:
?
假設我下載的源碼為如下位置:
直接在E:\learnTempFolder\dubbo-master下先執行Maven命令:
mvn -Pall eclipse:eclipse mvn clean mvn compile -Dmaven.test.skip=true mvn install -Dmaven.test.skip=true mvn package -Dmaven.test.skip=true |
執行完成之后,再進入E:\learnTempFolder\dubbo-master\dubbo-admin,執行如下命令:
mvn -Pall eclipse:eclipse mvn clean mvn compile -Dmaven.test.skip=true mvn install -Dmaven.test.skip=true mvn package -Dmaven.test.skip=true |
執行完成之后,最后的效果如下:
進入E:\learnTempFolder\dubbo-master\dubbo-admin\target,文件內容如下:
紅框中的war包就是我們所需的war包,將war改名稱為dubbo-admin-2.5.4.war,如下:
將dubbo-admin-2.5.4.war上傳到192.168.106.80這個服務器上的/usr/local/apache-tomcat-7.0.73/webapps
重啟tomcat,最后的效果如下
修改/usr/local/apache-tomcat-7.0.73/webapps/dubbo-admin-2.5.4/WEB-INF/dubbo.properties中的內容為:
dubbo.registry.address=zookeeper://192.168.106.80:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest |
注意上面的zookeeper://192.168.106.80:2181和http://blog.csdn.net/tototuzuoquan/article/details/72765043中的配置的zookeeper的地址信息
?
啟動tomcat 確定zookeeper啟動后再去啟動tomcat,訪問http://192.168.106.80:8080/dubbo-admin-2.5.4/
接著會彈出:
輸入:root,root,(注意:如果是上線后,需要把這個密碼改掉)進入了dubbo的控制中心
二、首頁?
?
注意:我們看到最下面顯示服務數:1 應用數:2 提供者數:1 消費者數:1 。?
這就是http://blog.csdn.net/tototuzuoquan/article/details/72765043中啟動的那個服務1(com.dubbo.service.TestService服務),應用2(test_consumer,test_provider),提供者1(192.168.106.80:20880)消費者1(192.168.106.80),分別來張截圖看看:?
1、服務?
點擊服務之后的效果:
2、應用?
3、提供者?
4、消費者?
通過dubbo管控臺可以看到剛剛我們啟動的服務,應用,提供者及消費者信息,這里,我們在演示下里面的功能之一權重調節功能,給不同的服務提供者分配不同的權限,看下消費者消費提供者的次數的變化。
?
為了達到演示效果,我將dubbo-provider項目在復制一份放到tomcat里面去,并將TestServiceImpl類修改下sayHello()方法,并修改dubbo暴露端口號,通過輸出不同信息,判斷消費者調用哪個服務提供者提供的服務(其它具體的代碼在:http://blog.csdn.net/tototuzuoquan/article/details/72765043)。
package com.dubbo.service.impl; ? import com.dubbo.service.TestService; ? public class TestServiceImpl implements TestService { ? ??? public String sayHello(String name) { ?????? return name + " say hello word"; ??? } ??? } |
?
?
接著,我們在修改下dubbo的暴漏端口號,修改applicationContext.xml里面的
<dubbo:protocol name="dubbo" port="20881" /> |
?
這次,我們不部署在192.168.106.80的tomcat下,而是部署在我們自己的本地開發電腦的tomcat上,重啟一下本地開發的tomcat
繼續訪問http://192.168.106.80:8080/dubbo-admin-2.5.4,我們能看到提供者里面,已經有我們剛新加的192.168.106.99:20881服務提供者啦!?
這個時候我們在訪問http://192.168.106.80:8080//dubbo-consumer/test.action?name=toto,當我們刷新時,返回的結果中除了上面截圖返回的結果,也會返回剛新修改的返回結果,而且多刷新幾次,兩種結果出現的幾率是一樣噠!因為這里的提供者權重是一樣的。
現在,我們修改這2個提供者的權重,我們讓192.168.2.193:20881的權重降一半即50,另一個192.168.106.99:20881提高到400,我們在來刷新多次,看下返回的兩種結果出現的幾率是不是1:4。親測,是噠!!!
其他dubbo相關的資料:
Dubbo:官網http://dubbo.io/
?
開發指南:http://dubbo.io/User+Guide-zh.htm
開發指南:http://dubbo.io/Developer+Guide-zh.htm
管理員指南:http://dubbo.io/Administrator+Guide-zh.htm
常見問題:http://dubbo.io/FAQ-zh.htm
?