Dubbo Admin 是dubbo-ops 三模塊中最容易使用的,因爲它和其他兩個(dubbo monitor和dubbo registry)不同,Dubbo Admin本身就是一個Spring Boot應用,也就是說它可以使用fat jar或者在IDE直接運行.而其他兩個則是用腳本運行.
接下來我們看看Dubbo Admin怎麼部署.
因爲本身就是Spring Boot應用,所以其實就跟普通的應用一樣.步驟如下:
1 獲取項目
Dubbo Admin 是dubbo-ops的一個模塊,拉取項目時需要將dubbo-ops整個拉取,dubbo-ops的github地址爲https://github.com/apache/incubator-dubbo-ops,可以使用如下指令拉取
git clone https://github.com/apache/incubator-dubbo-ops
可以看到工程結構如下圖
重點自然在application.properties 文件
2 修改配置文件
配置文件內容如下,一般只需要修改被我加了中文註釋的幾項
#服務端口
server.port=7001
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.layout-url=/templates/default.vm
spring.messages.fallback-to-system-locale=false
spring.messages.basename=i18n/message
#管理員登錄密碼
spring.root.password=root
#遊客登錄密碼
spring.guest.password=guest
#註冊中心地址
dubbo.registry.address=zookeeper://ip:2181?backup=ip:2182,ip:2183
需要注意的是註冊中心集羣時的寫法,zookeeper集羣用docker快速搭建可看以前的文章.
另外,管理員用戶名是root,遊客用戶名是guest,默認密碼與用戶名相同.
而且,從項目裏的LoginFilter.loginByDigest方法->LoginFilter.getUser方法->UserServiceImpl.findUser方法可以看出來,root和guest的密碼是從配置文件讀取的,但root和guest的用戶名卻是寫死的…這裏貼出com.alibaba.dubboadmin.governance.service.impl.UserServiceImpl.findUser方法的代碼,其他請自行查閱
@Value("${spring.root.password}")
private String rootPassword;
@Value("${spring.guest.password}")
private String guestPassword;
public User findUser(String username) {
if ("guest".equals(username)) {
User user = new User();
user.setUsername(username);
user.setPassword(Coder.encodeMd5(username + ":" + User.REALM + ":" + guestPassword));
user.setName(username);
user.setRole(User.GUEST);
user.setEnabled(true);
user.setLocale("zh");
user.setServicePrivilege("");
return user;
} else if ("root".equals(username)) {
User user = new User();
user.setUsername(username);
user.setPassword(Coder.encodeMd5(username + ":" + User.REALM + ":" + rootPassword));
user.setName(username);
user.setRole(User.ROOT);
user.setEnabled(true);
user.setLocale("zh");
user.setServicePrivilege("*");
return user;
}
return null;
}
3 運行
然後就是打包運行啦,和普通的Spring Boot應用一樣,沒什麼好說的.
從日誌可以看出來,建立連接的過程和dubbo應用基本一樣,感興趣的可以看看前面的文章,這裏就不再貼出來了.
4 查看效果
打開http://localhost:7001就可以看到效果了,因爲全都是中文,所以比Eureka的管理界面看起來更舒服,這裏貼幾張圖
dubbo管理控制檯首頁,可以看到統計數據
一個dubbo應用對應多個dubbo服務,而且一個dubbo應用可以集羣部署,所以一個dubbo服務又可以對應多臺主機
添加路由規則頁面,比較高級了,一般不會用到
系列文章:
Spring Boot 2+Dubbo 學習系列1:使用Docker部署zookeeper
Spring Boot 2+Dubbo 學習系列2:搭建Spring Boot 2+Dubbo+Zookeeper集羣
Spring Boot 2+Dubbo 學習系列3:dubbo-ops 之 Dubbo Admin