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 跟踪核心逻辑啦。