Nacos源碼篇-console模塊啟動類和配置類以及nacos服務相關接口簡單介紹


總體文件目錄:

 

 

一、主類入口:

 

 

 即是,nacos-sever服務啟動入口

二、配置類 com.alibaba.nacos.console.config.ConsoleConfig

/**
 * @author yshen
 * @author nkorange
 * @since 1.2.0
 */
@Component
@EnableScheduling
@PropertySource("/application.properties")
public class ConsoleConfig {

    @Autowired
    private ControllerMethodsCache methodsCache;

    @PostConstruct
    public void init() {
        methodsCache.initClassMethod("com.alibaba.nacos.naming.controllers");
        methodsCache.initClassMethod("com.alibaba.nacos.console.controller");
        methodsCache.initClassMethod("com.alibaba.nacos.config.server.controller");
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.setMaxAge(18000L);
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}

這個配置類在程序啟動的時候,會把naming、console(自身)和config下server包的 相關接口 都緩存到了“ControllerMethodsCache”的一個map中。

這些接口包括:

controller 說明 所屬模塊
 
HealthController(console健康信息)

 1、用於檢測Nacos是否正常

 2、檢測Nacos是否准備好接收請求

 
console
 
NamespaceController(命名空間服務)

 1、命名空間列表查詢

2、命名空間創建

3、刪除命名空間

4、編輯命名空間

5、判斷命名空間是否存在

console
 
PermissionController(權限操作相關)

 1、根據角色查詢權限

2、給角色賦予權限

3、給角色撤銷權限

console
 
RoleController(角色操作相關)

 1、角色列表

2、給用戶賦予角色

3、根據用戶刪除角色,或者不指定用戶則刪除所有用戶的該角色都會被刪除

console
 
ServerStateController(nacos服務狀態)
 獲取nacos服務的standalone_mode、function_mode和version等信息
console
 
UserController(用戶相關)

 1、創建用戶

2、刪除用戶

3、更新用戶

4、分頁獲取用戶

5、用戶登錄

6、更新密碼

console
 
CatalogController

 1、根據命名空間id和服務名稱查詢服務詳情和服務對應的集群信息

2、根據命名空間id、服務名稱、集群名稱和分頁參數,分頁獲取實例列表

naming
 
ClusterController(集群信息相關)
 1、更新集群信息,底層使用到了consistency模塊
naming
 
DistroController(分區協議相關)
 (暫時還沒完全弄清楚)
naming
 
HealthController
 naming相關的監控檢查接口
naming
InstanceController

 1、實例注冊

2、實例更新

3、實例移除

4、實例列表

5、實例詳情

6、心跳檢測

naming
 
OperatorController
 (暫時還沒完全弄清楚)  
naming
 
RaftController
 基於Raft的一致性協議,這里面的方法只能被nacos服務本身調用  
naming
 
ServiceController
 
naming 服務的相關接口,服務更新、刪除、創建、詳情、列表、搜素、服務狀態和服務訂閱者列表
 
naming
 
CapacityController(容量管理)

 1、獲取group和租戶的容量

2、修改Group或租戶的容量,容量信息還沒有初始化的則初始化記錄

 
config
 
CommunicationController(通知其他節點控制器)

 1、通知配置信息改變

2、在本台機器上獲得訂閱改配置的客戶端信息

3、在本台機器上獲得客戶端監聽的配置列表

 config
 
ConfigController(軟負載客戶端發布數據專用控制器)

 1、增加或更新非聚合數據

2、同步刪除某個dataId下面所有的聚合前數據

3、訂閱改配置的客戶端信息

4、查詢配置信息,返回JSON格式。

5、模糊查詢配置信息。不允許只根據內容模糊查詢,即dataId和group都為NULL,但content不是NULL。這種情況下,返回所有配置。

 config
 
ListenerController
 
獲取客戶端訂閱配置信息
 config
 
HistoryController
 
查看配置歷史信息詳情
 config
HealthController
  獲取健康檢查信息 config

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM