文章目录
- 1、类Linux tree的windows treee工具
- 2、源码目录结构
- 3、模块依赖关系
1、类Linux tree的windows treee工具
windows 自带的tree 不够用,使用node npm安装一个类Linux 的treee
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm config set registry https://registry.npm.taobao.org
cnpm install -g tree-node-cli
treee -h
2、源码目录结构
TODO
D:\nacos>treee -L 1 -a -r
nacos
├── test #(9K)core,naming,config三大模块的junit单元测试
├── sys #(2.2K) # nacos系统模块状态(spi),文件监听,上下文等
├── style # 代码风格配置文件
├── resources # copyright
├── prometheus #(0.3K)# 目前看没啥用,就三个简单的接口,文档也没有相关说明,console的监控实现是console模块自定义指标并通过通用的endpoint暴露给prometheus采集的
├── pom.xml
├── plugin-default-impl #(4.5K)# 插件默认实现
├── plugin #(7.7K)# 定义了几种插件spi接口,便于用户自定义一些功能
├── persistence #(2.7K)# 基于spring jdbc包装数据库操作(单机derby,集群mysql)
├── naming #(24K)# 核心模块:注册中心
├── istio #(1.2K)# 默认nacos server未启用,应该是nacos对接istio生态的一个项目,参考nacos服务网格生态
├── example #(0.1K)服务注册与下线,配置监听案例,运行其main方法即可测试(要启动一个nacos-server)
├── doc # 没啥文档
├── distribution # 脚本,配置文件,sql文件等
├── core #(16.6K)# 实现了一些通用基础通用功能,应该是config,naming的抽取出来的
├── console-ui # 控制台前端(React)
├── console #(1.1K)# nacos-server程序入口,但代码量很少,通过扫描config,naming,core等模块com.alibaba.nacos
路径,提供需要的web接口给console-ui调用
├── consistency #(1K)# 依赖common,定义AP/CP一致性上层相关api
├── config #(29K)# 核心:配置管理
├── common #(20K)# 依赖api,自己实现的一些公共功能模块如本地缓存,http实现,事件机制,包扫描,参数检查,grpc封装及其他工具类
├── codecov.yml
├── cmdb #(0.3K)# 存放机房设备、服务等相关元数据,默认未开启,大规模集群可基于其SPI机制实现多机房就近访问等
├── client #(16.5K)# 依赖common,api,auth模块,其他项目通过引入该唯一nacos jar使用nacos
├── auth #(1.6K)# 依赖common,定义http,grpc请求鉴权上层相关api
├── api #(10.5K)# 一些公共的注解、常量、接口、实体类、gpc生成类、工具类、config,naming等模块的一些底层base,是common模块的上层
├── address #(0.6K) # 暴露cluster CURD api,核心逻辑实现在naming模块
├── REPORTING-BUGS.md
├── README.md
├── NOTICE
├── LICENSE
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── CHANGELOG.md
├── BUILDING
├── .travis.yml #push代码到github,按travis流程检查代码
├── .idea
├── .gitignore
├── .github #github ci相关脚本如代码检查、编译打包、覆盖率测试等
├── .gitattributes
├── .git
└── .flattened-pom.xml # 统一版本号管理:${revision},easyj-maven-plugin文档
总代码行150Kloc,详细模块代码量及大致功能如上
3、模块依赖关系
以下是几个核心或代码量较大的几个模块依赖关系