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

 

 

posted @ 2020-06-05 15:09  Enast  阅读(3113)  评论(0编辑  收藏  举报