当前位置: 首页 > news >正文

在 IDEA 中用 Nacos2.1.0 源码启动集群模式并调试

单机模式

1、源码 clone 下来之后
2、导入 IDEA
3、compile 编译(主要是让 proto 和 istio 能够自动生成 Java 类),如果没生成,切换个 Maven直接再来一次即可。

在这里插入图片描述

4、单机模式很简单,就是在 VM 配置参数:-Dnacos.standalone=true
5、最后找到 nacos 类,的 main() 方法启动即可

在这里插入图片描述

集群模式

搭建集群前需要注意一个问题:在 Nacos2.x.x 版本中新添加了 grpc 通信协议,所以会额外开辟两个端口,而且这个两个端口是有规范的。如下图示:

在这里插入图片描述

所以启动一个 Nacos 服务就会占用三个端口号,注意启动第二个 Nacos 服务的时候不要和这三个端口冲突了,不然启动不了。

查看端口占用命令:

lsof -i:端口号

杀死端口号

kill -9 进程号(通过 lsof 可以查看到进程号 PID)

配置并启动集群

1、准备搭建三台 Nacos 集群,先规划下使用的端口号,如下:

第一台服务器使用 8848 端口,那么 grpc 端口就是 9848、9849 (这两个端口是默认生成的你好无感知的哦)
第二台服务器使用 8850 端口,那么 grpc 端口就是 9850、9851 (这两个端口是默认生成的你好无感知的哦)
第三台服务器使用 8852 端口,那么 grpc 端口就是 9852、9853 (这两个端口是默认生成的你好无感知的哦)

2、找个地方新建三个文件夹 8848、8850、8852,相当于是工作目录,用来隔离三台 Nacos 服务节点,注意生产环境的集群名称一般是以 aplicationName+端口 命名。

在这里插入图片描述

3、文件夹建好了,一定一定一定要在每个文件夹下面再创建一个 conf 文件夹,以为源码中默认路径是从 conf 路径

在这里插入图片描述

4、conf 建立之后,在 conf 文件夹下面创建一个 cluster.conf,注意名称不要乱改,源码中读取的路径就是 conf/cluster.conf,然后再在 cluster.conf 文件中配置需要启动的 Nacos 【服务节点 IP:端口号 】

在这里插入图片描述

5、配置文件配置好之后,就需要在 VM 参数中指定 Nacos 使用的端口号,并且读取哪个配置文件,如下图示:

在这里插入图片描述

指定使用端口号:

-Dserver.port=8852

指定让这台 Nacos 节点使用我们刚刚在上面配置好的的三个文件夹中的 8852 文件夹中的配置

Dnacos.home=/Users/gongweiming/IdeaProjects/nacos/8852

注意这两个 VM 设置中间使用空格隔开

其他两台也是循环上面步骤,然后分别启动即可,如下:

在这里插入图片描述

最后再来查看一下启动这三个 Nacos 有没有效果,进入到其中一台 Nacos 管理页面,在里面创建一个配置,然后再看另外两台 Nacos 节点是否有在第一台创建的配置。

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

可以看到已经成功的在 IDEA 中以源码的方式部署了 Nacos 集群。根本不需要将什么 Nacos 复制三份,没这必要。

最后你可以查看下本地启动三台 Nacos 服务节点总共消耗了 9 个端口号。主要是 grpc 确实是比 httpclient 快多了。

相关文章:

  • 前端毕业设计:Nodejs+Vue菜鸟驿站仓库管理系统的设计与实现
  • 服务器的基本概念与初识Ajax,jQuery当中的ajax,get(),post()接口,postman测试接口
  • Java基于SpringBoot+Vue+nodejs的企业公司人事管理系统 Element
  • webpack5构建基于Vue3+ElementPlus项目搭建(开发和生产)
  • 6. 测度论-期望及其性质
  • java计算机毕业设计贫困助学管理系统源程序+mysql+系统+lw文档+远程调试
  • Java | 异常类【万字详解,看过来】
  • opencv 矩形检测与计数
  • vscode ssh远程连接失败问题及解决
  • aistudio 常规赛:钢铁缺陷检测挑战赛 经验总结,轻松复现map 46的结果
  • 【解决方案】成功解决将XGBoost中plot_importance绘图时出现的f0、f1、f2、f3、f4、f5等改为对应特征的字段名
  • 二十四、C 文件读写
  • 程序员如何庆祝十一:用Python绘制红色的中国地图
  • 十一、动态规划题目相关
  • JAVA计算机毕业设计宠物销售管理系统Mybatis+系统+数据库+调试部署
  • JAVA_NIO系列——Channel和Buffer详解
  • Javascript弹出层-初探
  • java中的hashCode
  • JS笔记四:作用域、变量(函数)提升
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • magento2项目上线注意事项
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • uva 10370 Above Average
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 开源SQL-on-Hadoop系统一览
  • 前端临床手札——文件上传
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用 @font-face
  • 异常机制详解
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​2021半年盘点,不想你错过的重磅新书
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (2)STM32单片机上位机
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (三)elasticsearch 源码之启动流程分析
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)重识new
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 使用配置文件
  • .NET导入Excel数据
  • :中兴通讯为何成功
  • @基于大模型的旅游路线推荐方案
  • [BUUCTF 2018]Online Tool(特详解)
  • [bzoj1038][ZJOI2008]瞭望塔
  • [CTO札记]盛大文学公司名称对联
  • [ES-5.6.12] x-pack ssl
  • [java/jdbc]插入数据时获取自增长主键的值
  • [leetcode] 3Sum
  • [one_demo_18]js定时器的示例
  • [Poetize6] IncDec Sequence