• 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

     

     

  • 相关阅读:
    搜索引擎
    Mybatis springmvc面试题
    spring框架面试题
    数据库
    javaWEB面试题
    JavaWeb
    SpringCloud2
    网络
    比特币网络架构及节点发现分析
    Github推荐一个国内牛人开发的超轻量级通用人脸检测模型
  • 原文地址:https://www.cnblogs.com/HendSame-JMZ/p/13049841.html
Copyright © 2020-2023  润新知