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

Nacos源码总览

  • Nacos源码
    • 源码目录讲解
      • api目录
      • auth权限管理模块
      • client客户端模块
      • common模块
      • config模块
      • consistency 一致性
      • console控制台模块
      • console-ui 前端页面
      • core模块
      • distribution分布式模块
      • istio网格模块
    • protoc安装
      • windows安装


Nacos源码

Nacos github地址

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

源码目录讲解

编辑如下:
Nacos源码构建与总览(一起读源码)_第1张图片

api目录

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

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

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

auth权限管理模块

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

client客户端模块

nacos客户端模块。

common模块

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

config模块

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

consistency 一致性

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

console控制台模块

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

console-ui 前端页面

nacos前端控制器UI代码。

core模块

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

distribution分布式模块

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

istio网格模块

实现了nacos的istio。


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,spring,cloud,alibaba,源代码,java)