专栏名称: keep-go-on
目录
相关文章推荐
今天看啥  ›  专栏  ›  keep-go-on

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

keep-go-on  · CSDN  ·  · 2020-01-01 00:00


Nacos源码

Nacos github地址

git clone https://github.com.cnpmjs.org/alibaba/nacos.git
  • 1
  • 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
  • 1
  • 1

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

编译 consistency.proto

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

编译 Data.proto

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



原文地址:访问原文地址
快照地址: 访问文章快照