Nacos源码构建与总览(一起读源码)
发布日期:2021-06-30 16:13:10 浏览次数:2 分类:技术文章

本文共 1306 字,大约阅读时间需要 4 分钟。

Nacos源码总览


Nacos源码

Nacos

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的权限功能。

具体源码讲解见 :

client客户端模块

nacos客户端模块。

common模块

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

config模块

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

consistency 一致性

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

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

对分布式的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 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

转载地址:https://keepgoon.blog.csdn.net/article/details/116610183 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:一文道尽分布式的CAP原则
下一篇:大话JUC核心类LockSupport(通过源码理解LockSupport)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月19日 12时08分41秒