總體文件目錄:
一、主類入口:
即是,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 |