Spring Boot 2+Dubbo 學習系列3:dubbo-ops 之 Dubbo Admin

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應用可以集羣部署,所以一個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

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