1.nacos源码分析-启动流程及项目结构分析

1.下载源码:

git clone git@github.com:alibaba/nacos.git

 

2.导入源码到idea中

 

3.打包编译:

mvn -Prelease-nacos clean install -U -Dmaven.test.skip=true

 

4.开始分析源码

首先找到distribution这个mudule,该module中的start.sh启动文件,找到这一行:

JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins/health -jar ${BASE_DIR}/target/${SERVER}.jar"

根据上面的定义:

export SERVER="nacos-server"

可以看出,nacos启动的时候是启动的nacos-servce.jar这个jar包。该包在步骤3的编译打包后位于distribution这个module的target下,解压该包,查看MANIFEST.MF文件,看到启动类为Nacos类:

Start-Class: com.alibaba.nacos.Nacos

该类位于console这个module下,入口找到。

 

5.console这个springboot项目,console本身没有什么核心功能,主要是一些权限相关的内容,console还引入了naming和config项目。

<dependency> <groupId>${project.groupId}</groupId> <artifactId>nacos-config</artifactId> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>nacos-naming</artifactId> </dependency>

 

并且在console的启动类中:

@SpringBootApplication(scanBasePackages = "com.alibaba.nacos") @ServletComponentScan @EnableScheduling public class Nacos { public static void main(String[] args) { SpringApplication.run(Nacos.class, args); } }

指定了包扫描,因此,工程中所有该包下的@Component类型注解都会描加载。

distribution中的sh脚本启动调用java -jar nacos-server.jar

 

 

nacos-server中执行main方法位于console项目中:com.alibaba.nacos.Nacos类。

console项目依赖于naming和config项目;

naming项目依赖于core和api项目;

config项目依赖于core和api项目;

core项目依赖于common项目;

client项目依赖于common项目和client项目;

cmdb项目依赖于core和api项目;

console的Nacos类启动后,会通过包扫描来扫描所有的module相关目录,至此,项目启动。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值