Nacos源码构建与总览(一起读源码)

Posted keep-go-on

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos源码构建与总览(一起读源码)相关的知识,希望对你有一定的参考价值。


Nacos源码

Nacos github地址

git clone https://github.com.cnpmjs.org/alibaba/nacos.git

源码目录讲解

编辑如下:

api目录

该模块定义了nacos的一些注解,接口,抽象类,枚举和常量等,该模块下几乎没有实现类,只有如下几个方面的定义:

  1. CMDB(配置管理数据库)实体,枚举和SPI接口等。
  2. Nacos注解声明。
  3. 配置注解,POJO,过滤器,监听器,常量等声明。
  4. 异常声明。
  5. 命名服务的监听器声明,实体对象,服务接口,工厂类等。
  6. selector定义
  7. 工具和common的定义。

阿里开源项目中很多地方都使用了SPI模式,这种方式很容易做拓展,并且松耦合。我们最常见的数据库驱动就是使用SPI模式。

auth权限管理模块

该模块实现了nacos的权限功能。

具体源码讲解见 : 《nacos源码之Auth(权限)模块》

client客户端模块

nacos客户端模块。

common模块

nacos通用模块,内部声明了http的使用方式,和一下通用接口或者抽象类。

config模块

nacos两大核心功能配置中心实现就在该模块中。

consistency 一致性

该模块实现了nacos的一致性。主要是针对服务发现的一致性,配置中心主要是通过数据库完成的一致性。

  1. AP模型。Nacos默认使用AP模型,但是一致性模块只是定义了一致性接口,实现在core模块。
  2. CP模型。Nacos也是支持CP模型的(Eureka只支持AP模型)。

对分布式的CAP原则有疑问欢迎参考 😗 一文道尽分布式的CAP原则


console控制台模块

该模块实现了nacos控制台的集成,将前端页面与后端集成到一起。

console-ui 前端页面

nacos前端控制器UI代码。

core模块

核心处理模块。权限过滤器配置,权限注解实现,核心异常处理,监听器等。

distribution分布式模块

其实该模块只是包装了一下console模块,并且提供了一下外部配置文件和常用脚本。

istio网格模块

实现了nacos的istio。

naming服务治理模块

nacos服务治理的实现模块。


protoc安装

下载下来源码,你会发现 缺少 很多实体类,例如一致性(consistency)模块就缺少 com.alibaba.nacos.consistency.entity

原因就是高版本的nacos使用了protoc ,因此我们需要先编译protoc生成缺少的实体类

下载protoc

protoc GitHub地址 : https://github.com/protocolbuffers/protobuf/

windows安装

  1. 下载安装包
  2. 解压安装包
  3. 配置环境变量

常用命令:

查看版本

protoc --version

首先进入consistency模块的 src/main/proto目录

编译 consistency.proto

protoc --java_out ../java/ ./consistency.proto

编译 Data.proto

protoc --java_out ../java/ ./Data.proto

以上是关于Nacos源码构建与总览(一起读源码)的主要内容,如果未能解决你的问题,请参考以下文章

nacos源码之Auth(权限)模块-1(授权过滤器与控制器缓存)

nacos源码之Auth(权限)模块-1(授权过滤器与控制器缓存)

全网最火的Nacos源码构建,你找不到第二个有我仔细的!!

Nacos源码系列—关于服务注册的那些事

Nacos源码1.4.1注册中心客户端

Nacos源码编译