前言

承接上一篇博客,讨论完单机寻址模式后这篇来讨论一下文件寻址模式。

同样地,本文还是在《Nacos架构&原理》章节 Nacos 寻址机制 的基础上对源码进行分析和学习。

参考文档

关于文件寻址

在这里插入图片描述
在这里插入图片描述

第一段话其实就已经涵盖了最重要的内容:

  1. 集群模式下的默认寻址模式
  2. 需要维护一个 cluster.conf 文件

框架集成

本文使用的【RuoYi-Cloud-Plus】框架版本是 V1.3.0
在这里插入图片描述

Nacos采用的是源码集成方式,版本为 V2.1.1
在这里插入图片描述

集群启动演示

关于集群启动的测试,很多教程是复制三份源码进行操作,本文稍微偷懒一下,在 idea(版本 2022.1)里面启动三次服务来模拟集群,具体步骤请看下文。

步骤一:创建 conf 文件

上文有说到,文件寻址模式需要每个节点都维护一份 conf 文件,因此三个节点需要三份 cluster.conf

在本地创建三个节点(地址自定义):

F:/study/Nacos/test
在这里插入图片描述

在每个节点下都需要创建 conf 文件夹,然后在此文件夹下创建 cluster.conf 文件:
在这里插入图片描述

注:路径 /conf/cluster.conf 是默认路径:
在这里插入图片描述

变量值:
在这里插入图片描述

编辑 cluster.conf 文件,配置节点 IP:PORT 信息:

192.168.10.1:8848
192.168.10.1:8858
192.168.10.1:8868

步骤二:修改 Nacos 启动类

修改 Nacos 启动类,将单机模式修改为 false
在这里插入图片描述

步骤三:设置 IDEA 启动项

在这里插入图片描述

设置允许多个服务启动:
在这里插入图片描述

在这里插入图片描述

设置完成会出现:
在这里插入图片描述

复制三份配置,分别设置启动项参数:
在这里插入图片描述

# Nacos-8848
-Dserver.port=8848 -Dnacos.home=F:/study/Nacos/test/nacos1

# Nacos-8858
-Dserver.port=8858 -Dnacos.home=F:/study/Nacos/test/nacos2

# Nacos-8868
-Dserver.port=8868 -Dnacos.home=F:/study/Nacos/test/nacos3

步骤四:启动服务

在这里插入图片描述

源码分析

寻址模式初始化流程图(重要)

在这里插入图片描述
对于寻址模式初始化流程做了简单的流程图,下面的分析基于此图。

1、ServerMemberManager 节点管理器初始化

ServerMemberManager#init
在这里插入图片描述

在这里插入图片描述

2、初始化寻址模式 ServerMemberManager#initAndStartLookup

在这里插入图片描述

该方法主要有两个步骤:

  1. 创建 MemberLookup 寻址对象
  2. 开始寻址

2.1、创建寻址对象实例 LookupFactory#createLookUp

在这里插入图片描述

此处先进行判断,如果是单机模式,则直接创建对象。而非单机模式,会进入 if 方法体:

  1. 从配置环境获取寻址模式类型
  2. 根据类型选择寻址模式枚举 LookupFactory#chooseLookup
  3. 根据枚举获取寻址模式对象 LookupFactory#find

此处没有设置 LOOKUP_MODE_TYPE
在这里插入图片描述

根据 lookupType 获取枚举信息:

LookupFactory#chooseLookup
在这里插入图片描述

根据返回的枚举信息获取寻址对象:

LookupFactory#find
在这里插入图片描述

注入 ServerMemberManager 属性,返回寻址对象到上一层。
在这里插入图片描述

2.2、开始寻址 AbstractMemberLookup#start

ServerMemberManager#initAndStartLookup
在这里插入图片描述

AbstractMemberLookup#start
在这里插入图片描述

3、文件寻址模式 FileConfigMemberLookup#doStart

在这里插入图片描述

3.1、从磁盘读取集群配置 FileConfigMemberLookup#readClusterConfFromDisk

在这里插入图片描述

同上篇单机模式,AbstractMemberLookup#afterLookup 通知服务变更信息。

3.2、注册文件监控中心 WatchFileCenter#registerWatcher

在这里插入图片描述
至此,文件寻址初始化完成。

GitHub 加速计划 / na / nacos
29.84 K
12.75 K
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:3 个月前 )
4334cd16 * Support custom client configuration timeout.(#12748) * Add UT.(#12748) 24 天前
b04d2266 28 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐