【RuoYi-Cloud-Plus】学习笔记 02 - Nacos(二)寻址机制之文件寻址分析

前言

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

同样地,本文还是在《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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
RuoYi-plus是一个基于RuoYi升级的springcloud版本管理系统。软件由SMP多商户后台管理系统+API后端接口组成,项目支持cms内容管理和商城业务,提供单机版服务、微服务体系双向选择,微服务集成分布式事务解决方案seata,框架基于SpringBoot2.x,springcloudG版本。 RuoYi-plus项目介绍 项目核心: 多商户权限系统+商城平台+CMS内容管理+微服务API系统 架构技术: 基于SpringBoot2.x, springcloud G版本eureka、hystrix、feign、config、gateway微服务架构体系的全新版本,集成分布式事务解决方案seata,集成redis、quartz、tk.mybatis、lombok、各种设计模式等。 项目优势: 架构更清晰、技术更前沿、代码更整洁、页面更美观、学习商用均可。可用于OA系统、 CRM系统、 PDM系统等次开发,微服务架构学习,非常适用于公司管理平台旧版本升级、新平台搭建快速整合、同时提供API接口服务(供APP、微端、h5等使用)。 RuoYi-plus内置功能 管理平台基础功能 1、用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2、部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 3、岗位管理:配置系统用户所属担任职务。 4、菜单管理:配置系统菜单,操作权限,按钮权限标识等。 5、角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 6、字典管理:对系统中经常使用的一些较为固定的数据进行维护。 7、参数管理:对系统动态配置常用参数。 8、通知公告:系统通知公告信息发布维护。 9、操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 10、登录日志:系统登录日志记录查询包含登录异常。 11、在线用户:当前系统中活跃用户状态监控。 12、定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 13、代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 14、系统接口:根据业务代码自动生成相关的api接口文档。 15、服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 16、在线构建器:拖动表单元素生成相应的HTML代码。 17、连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 商城业务基础功能 1、商户管理:多商户系统核心业务,商户管理对应权限数据。 2、类别管理:商品类别配置,为商品区分类别。 3、商品管理:每个商户下的商品信息。 CMS内容基础功能 1、文章类别管理:文章列表信息,为文章区分不同类别。 2、文章信息管理:文章具体信息,直接生成文章html页面。 3、素材类别管理:为素材提供类别以区分不同业务的素材图片/视频。 4、素材信息管理:文章信息的素材图片管理。 API接口基础功能 1、业务模块:接收网关gateWay转发请求,api微服务结构处理具体业务,解决分布式事务。 2、订单模块:订单相关业务处理。 3、商品模块:商品相关业务处理。 商用须知 本项目遵循MIT协议,无需授权,留言备注公司信息即可。 演示地址账号:tecom  密码:123456

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichelleChung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值