总体文件目录:
一、主类入口:
即是,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 |