【Nacos 源码之配置管理 一】阅读源码第一步, 本地启动 Nacos
作者:石臻臻,CSDN 博客之星 Top5、Kafka Contributor、nacos Contributor、华为云 MVP,腾讯云 TVP,滴滴 Kafka 技术专家、 KnowStreaming。
KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源! 。
1 前言
在我们去阅读 Nacos 源码之前,我们得先了解 Nacos 是干嘛的,以及怎么用,这样有利于我们更容易去理解源码;
查看 Nacos 的官方文档,我们知道 Naocs 主要有以下特性:
配置中心
服务注册与发现
...
Nacos 有给我们提供管理界面,用来方便配置数据;我们先把整个 Nacos 源码克隆下来,本地启动;熟悉一下如何使用它
2 启动 Nacos 项目
1.克隆 Nacos 源码
导入到 Idea 中
2.配置 Mysql 数据源
Nacos 内置嵌入式 derby 数据库,但是它只适合开发测试中使用,也不利于我们观察数据;所以我们更改一下数据库为 Mysql
在使用 Mysql 之前,需要先建立 nacos_config 的数据库 sql 文件在模块 distribution
中的conf/nacos-mysql.sql
; 执行一下这个文件;
在模块 nacos/distribution
中添加 Mysql 的配置文件
在这里插入图片描述
3.将项目打包发布
执行打包命令
在这里插入图片描述
打包完毕,执行启动脚本
image.png
这里 -m standalon
e 表示单机模式启动,还有其他可选的参数有:
-f [config/naming]启动模式 支持只启动某一个模块,config:配置中心; naming:服务注册与发现,不设置时所有模块都会启动
-s 后面接服务包名字; 默认值是
nacos-server
就是可以指定启动的 Jar 包名;
检查启动是否成功
启动成功之后,就可以访问管理后台了http://localhost:8848/nacos/index.html 登陆账户密码都是: nacos 登陆之后的管理后台
如果刚刚启动的时候加了参数 -f config
那么现在看到的只有配置管理和命名空间两个菜单栏了使用的详细解释可以参考官方文档 控制台手册
3Nacos 配置中心数据库表结构说明
tenant_info 租户信息表(命名空间表)
Nacos 基于 Namespace 帮助用户逻辑隔离多个命名空间,这可以帮助用户更好的管理测试、预发、生产等多环境服务和配置,让每个环境的同一个配置(如数据库数据源)可以定义不同的值。
这个命名空间的数据就是存在表 tenant_info
中 tenant_info
(kp
,tenant_id
) 组成唯一约束
config_info 配置信息表
所有配置的数据都存在这个表中;
config_info_beta 灰度配置信息
Nacos 中的灰度发布功能,如果点击了灰度发布,并且填写灰度发布的服务器 Ip;信息会存储在这里;
(data_id
,group_id
,tenant_id
) 组成唯一约束
config_tags_relation tag 关系表
每个配置文件都可以打上 tag 标签; 这张表记录的是配置文件与 tag 的绑定关系
(id
,tag_name
,tag_type
) 组成唯一约束
his_config_info 历史配置表
Nacos 会把历史配置都会记录下来,用来方便回滚配置; 默认情况超过 30 天的记录会被删除;
4 如何本地调试 Jar 包方式启动的源码
由于上面的启动方式,我们可能不能进行本地 Debug;但是我们可以在启动的时候开启 Debug 端口,通过远程监听 Debug 端口来进行 Debug;
那么我们先修改一下启动脚本,打开调试端口修改文件 distribution/target/nacos-server-{version}/nacos/bin/startup.sh
重新启动
先把项目停止sh distribution/target/nacos-server-{version}/nacos/bin/shutdown.sh
然后重新启动sh distribution/target/nacos-server-1.1.3/nacos/bin/startup.sh -m standalone
启动成功,检查调试端口是否打开
已经有一个 6666 的端口在 LISTEN 中了;
配置调试在 Idea 中新建一个 remote 启动;
启动调试启动调试; 打一个断点,然后管理后端操作一下;看下效果
调试成功
项目启动了,也调试成功了; 那么我们就可以方便的开始阅读源码了!
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/6dd7bbf2464d2c59b59162103】。未经作者许可,禁止转载。
评论