【Nacos】源码以及启动环境搭建

news/2025/3/1 20:38:09/文章来源:https://www.cnblogs.com/kukuxjx/p/18745340

1  前言

Nacos 现在越来越成为微服务结构中不可或缺的一部分,他的集成服务以及配置的管理一体化、简单方便也是我们手首选的原因,那么了解他的原理就很重要。所以我们这节拉取下源码调试下环境,方便我们观察服务注册的整体过程,以及配置下发等核心逻辑的过程,有助于更好的理解和排查故障。

相关链接:Nacos 官网、Nacos 源码、protoc 安装压缩包、

前置条件:有 jdk 、maven、mysql、protoc(这玩意要有)

2  环境准备

2.1  源码下载

按照上边的链接地址,拉取下源码,我的分支是在 develop,因为我们项目用的是 2.1.1 版本的 nacos 所以我在 develop 分支然后回退到 2.1.1 的代码记录那里:

2.2  启动报错问题处理

拉完我们直接启动的话,会直接报错,我也是搜了搜慢慢的一个个问题解决了,最后启动起来了,所以我这里把我启动过程中,遇到的问题以及解决办法贴出来。

启动的入口是在:

2.2.1  entity 包不存在

首先我启动的第一个报错就是类找不到或者包找不到,entity xxx 什么的,也是最麻烦的一个报错:

这个是因为依赖的这些类是由 protoc 生成出来的,所以我们本地要有 protoc ,关于 protoc 的安装可以参考:protoc 安装参考,写的还是比较细的,大致的执行步骤就是:

(1)idea 先安装 genprotobuf 插件

(2)然后本地下载 protoc 的压缩包,然后按照步骤安装到本地

(3)最后配置 idea 里的插件配置 tools–>configure genprotobuf

即可,这是我的配置,大家可以参考:

这三个步骤走完,然后按下图操作:

这个执行很快,执行完就会看到这些类已经出来了:

好了,这个类找不到的问题按照如上进行解决即可。

2.2.2  istio 包找不到

类似如下这个报错:

这个我是执行这里的编译整个项目好的,这个时间很长,要耐心等一会儿:

2.2.3  改为本地 Mysql

首先 mysql 的数据库脚本是在:

执行完脚本后,修改数据源配置,在这里:

修改完启动即可。

2.3  启动验证

启动后的效果如下:

页面效果:

然后我们新增一个用户,看看对应的数据库中是不是会多一条数据,保证我们的数据是落在本地数据库中的:

新增完,查看数据库确实多了一个用户:

3  小结

好啦,至此 nacos 的源码环境基本就到这里结束了,后面我们就可以尝试注册服务、消费服务、修改配置等来 debug 跟踪核心逻辑啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/891673.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

foobar2000 v2.24.2 汉化版

foobar2000 v2.24.2 汉化版 -----------------------【软件截图】---------------------- -----------------------【软件介绍】---------------------- foobar2000 是一个 Windows 平台下的高级音频播放器.包含完全支持 unicode 及支持播放增益的高级标签功能. 特色: * 支持的…

Jsmoke-一款强大的js检测工具,浏览器部署即用,使用方便且高效

Jsmoke 🚬🚬 by Yn8rt ​ 该插件由 Yn8rt师傅 开发,插件可以理解为主动版的hae和apifinder,因为其中的大多数规则我都引用了,当你认为当前页面,以及其调用的js文件存在敏感信息的时候,可以用它来帮你打开突破口,速度很快,非常方便,也比较直观,该插件用于检…

【恐怖の算法】 斜率优化

【恐怖の算法】 斜率优化【恐怖の算法】 斜率优化 斜率优化是一种用于优化动态规划(DP)算法时间复杂度的技巧,通常可以将一些原本时间复杂度较高的 DP 问题优化到线性时间复杂度。下面将详细介绍斜率优化的原理、步骤,并给出一个具体的 C++ 实现示例。 原理 在某些动态规划…

[联合省选2025 游记] Now and forever

正在写。。。但是估计有人会急,所以同步更新([联合省选2025 游记] Now and forever day -1 乐死我了,今天出了个巨大的乐子,总结为逐火十三英桀 文章链接:https://www.luogu.com.cn/article/xlmq65ph 直击主题:https://pic1.imgdb.cn/item/67c1b6ded0e0a243d4083603.png …

Java学习——数组

数组的定义和声明1.声明数组 int[] array =null;这一步在栈里面压入了一个array;声明的时候数组还不存在 2.创建数组 array=new int[10] ;这一步在堆里面开辟了一个内存 3.给数组元素赋值 for (int i = 0; i < nums.length; i++) { nums[i] = i + 1; System.out.println(nu…

pyenv下载慢的解决方式

pyenv install 不知道为什么会卡住 解决方法就是手动直接下载对应的版本 放到对应的目录 例如这里显示的To C:\Users\28453\.pyenv\pyenv-win\install_cache\python-3.12.9-amd64.exe 我们只需要到 python 官网去下载对应的版本 并放到指定目录 我用的是 pyenv-win 需要下载 …

MongoDB聚合查询

MongoDB聚合查询 创建测试数据 db.student.drop() db.student.insertOne({_id: 1,name: "zhangsan",age: 12,teacher: ["Tom","Jack"]}) db.student.insertOne({_id: 2,name: "lisi",age: 15,teacher: ["Lucy","Tom&qu…

htmx怎么样,光速弃坑

前言 htmx可以说是对html标签的加强,提供了一些额外的标签属性,来获得一些功能,比如ajax局部渲染之类的。 快速自定义事件等等…… 使用? <script src="https://cdn.bootcdn.net/ajax/libs/htmx/2.0.4/htmx.min.js"></script>我想首先使用一下获取&l…

2024春季NOI省选游记

前言 初二,同步赛选手,Day 1 还行,Day 2 拉跨。 Day 1 (时刻有些许偏差) \(8:25\) 公布密码了,居然没有 PDF 密码。 \(8:26\) 开 T1,感觉余数必须要枚举,剩下的可能需要 \(\log\) 找解。 \(8:35\) 开始写二分,没过大样例。 \(8:57\) 调了半天,发现二分是假的。 \(9:13\…

3.1 多元函数的全微分

1 多元函数的全微分 1.1 定义 1.1.1 回顾一元函数的微分 1.1.2 多元函数的定义1.1.3 可微推导连续 但连续不一定可微,证明如下: 若连续一定可微,又一元函数必满足二元函数的性质,又一元函数可微必可导,可推至连续必可导,矛盾 1.2 多元函数可微的必要条件 1.2.1 可微必可导…

React—10—受控组件和非受控组件;高阶组件

一、概念 我的理解是,是否有react提供数据,分为受控组件和非受控组件。 比如input元素,只要绑定了value属性,那么在react中,用户在输入框输入的值不会显示在输入框(react应该做了限制,原生html的input框即使value绑定了值依然可以输入), 这就导致,想改变value的值,必须…