1 源码下载
github nacos地址,目前nacos最新版本2.2.0.1,做测试直接选最新版本就可以。下面介绍几个nacos常用版本,根据需要自行下载。
ncos版本 | 描述 | 适用 |
---|---|---|
v2.2.0.1 | 最新 | 新特性测试学习 |
v2.1.1 | 2.x稳定版 | 新项目生成环境 |
v1.4x | 1.x稳定版本 | 旧项目生产环境 |
记得是下载源码,不是直接下载运行程序。如下图1-1所示:
2 编译排错
本人当前环境如下表2-1所示:
系统 | JDK | Maven | IDE | Nacos |
---|---|---|---|---|
Windows 10 | 64位 JDK1.8 | 3.9.0 | idea2022.3.2 | v2.2.0.1 |
直接idea打开解压后的文件夹,一眼就是一堆服务,不要慌。nacos学习一步一步来就好,现在我们只需要吧nacos启动,登录下后台,有个简单了解即可。
认知1:nacos是基于springboot的web服务。
我们来找下springboot及web相关依赖。
nacos-all下的pom.xml中找到springboot依赖
<spring-boot-dependencies.version>2.6.8</spring-boot-dependencies.version>
在我们要启动的服务nacos-console对应的依赖中,找到spring-web依赖,如下图2-1所示
既然是基于Springboot的web服务,我们找到nacos-console下的启动启动,以standalone模式即单机版启动,在Run Configuration里面配置下VM Option
-Dnacos.standalone=true
run 运行命令 加上,-Dmaven.test.skip=true
install -Dmaven.test.skip=true -f pom.xml
- 报错1:找不到依赖的jar包
Caused by: java.lang.IllegalArgumentException: Could not find class [com.alibaba.nacos.api.annotation.NacosApi]
这个类在nacos-api中,看来nacos-console启动去需要其他jar包,那我们直接通过idea的Maven UI窗口把整个nacos-all clean install 一下。
install过程如下图2-2所示:
再次启动Nacos
- 报错2:密钥不符合规则
Caused by: java.lang.IllegalArgumentException: the length of secret key must great than or equal 32 bytes; And the secret key must be encoded by base64.Please see https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
点击链接,跳转官方文档,参考修改nacos-console 下application.properties相应内容如下:
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
这里只是做演示,没有自定义密钥,并进行base64加密
再次启动Nacos,出现nacos logo。控制台地址 Console: http://自己IP地址:8848/nacos/index.html,直接点击,浏览器进入nacos后台,默认用户名:nacos,密码:nacos,登录页面展示如下图2-3所示:
3 修改数据库
nacos默认使用的是内置Derby数据库(没有接触过),为了便于我们以后学习观察,我们把数据库配置为mysql。
第一步:mysql数据库中创建数据库,库名:nacos
第二步:找到nacos给我们提供的sql脚本,位置下图3-1所示:
第三步:连接mysql,使用刚创建的nacos数据库,我这里用的navicat,执行上面的sql脚本。
mysql中生成如下图3-2所示表:
第四步:修改nacos-console 配置文件application.properties如下配置,如果被注释,解开注释
spring.sql.init.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://自己IP:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=自己数据库用户名
db.password=自己数据库密码
在此启动nacos,控制台输出
2023-03-14 11:14:16.631 INFO 9360 --- [ main] c.a.n.c.l.StartingApplicationListener : Nacos started successfully in stand alone mode. use external storage
说明我们配置mysql数据库生效。如果是没有配置外部数据库,控制台输出如下:
2023-03-14 11:18:07.540 INFO 4940 --- [ main] c.a.n.c.l.StartingApplicationListener : Nacos started successfully in stand alone mode. use embedded storage