jk's notes
  • Nacos 2.5 版本的使用

Nacos 2.5 版本的使用

主要内容包括:

  • 下载与安装
  • 启用鉴权认证
  • 使用 MySQL 数据库
  • 基本用法 - 配置服务器
  • 基本用法 - 服务发现与注册

1. 下载与安装

1.1 下载

Nacos 在 GitHub 上托管, 可以直接下载安装, 也可以通过官网下载安装. 官网地址: https://nacos.io/

image-20251028171806466

image-20251028171732642

可以直接下载压缩包 (构建好的), 也可以下载源码自己编译.

wget https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz
tar xf nacos-server-2.5.1.tar.gz -C /usr/local/

1.2 安装

测试可以使用 Win, 但存在端口占用的奇怪问题 (实际上端口没有被占用, 但就是绑定失败, 通常重启就可以解决). 所以建议还是使用 Linux 安装, 可以使用虚拟机, 也可以使用 Docker.

1.2.1 二进制安装

二进制安装需要 Java 环境:

  1. 下载 Java 包, 解压.

  2. Win: 配置环境变量 JAVA_HOME, 然后将 %JAVA_HOME%\bin 添加到 PATH 路径中.

  3. Linux: 官网提供了配置方法 (针对不同 shell), 下面是 bash 的写法:

    export JAVA_HOME=jdk-install-dir
    export PATH=$JAVA_HOME/bin:$PATH
    
  4. 也可以使用 apt 等工具下载:

    apt update && apt -y install openjdk-8-jdk
    # 或者 apt install openjdk-11-jdk -y
    # 如果是 CentOS 可以使用
    yum -y install java-1.8.0-openjdk-devel
    

安装 Nacos

  1. 解压.
  2. 单机启动 (standalone).

解压后默认有几个目录:

  • bin 目录, 程序所在目录.
  • conf 目录, 这里是配置文件, SQL 脚本存放的位置.
  • target 目录, 存放着 nacos 程序.

image-20251028181418958

linux 下解压可以使用:

tar xf nacos-server-2.5.1.tar.gz -C /usr/local/

默认情况下不用修改配置文件, 可以直接运行.

如果是 Windows, 进入 nacos 的 bin 目录后, 直接运行:

.\startup.cmd -m standalone

如果是 Linux, 进入 nacos 的 bin 目录后运行:

sh startup.sh -m standalone
# 如果是 ubuntu 系统则使用
bash startup.sh -m standalone # 因为在 ubuntu 中 sh 是 dash 的软连接

由于默认使用集群模式运行, 因此单机版运行需要带有参数 -m standalone.

另外, 由于命名, 不建议将 bin 目录添加到 PATH 环境变量中.

如果看到: Nacos started successfully in stand alone mode. use embedded storage 则表示成功运行.

使用单机模式运行, 并默认使用嵌入式数据库.

在浏览器中访问 http://localhost:8848/nacos 即可打开 nacos 自带的管理控制台, 默认没有鉴权.

image-20251028181219767

3.1.0 的版本默认会使用 8080 端口, 并且也不需要携带 /nacos 路径.

1.2.2 Docker 安装

常规的安装方式有两种:

  1. 使用官方提供的 git 仓库, 基于已经写好的 docker-compose 配置来创建.
  2. 直接使用镜像创建.

官方提供的 git 仓库:

git clone https://github.com/nacos-group/nacos-docker.git

image-20251029151935763

写好的参考脚本在 example 目录下. 公共的配置信息, 例如环境变量等在 env 目录下. 而如果需要深度自定义, 可以参考 build 目录下的 Dockerfile.

补充一下: 3.1.0 的版本必须设置 key 等信息, 即使不开启鉴权, 否则启动会失败.

单机部署可以使用:

docker-compose -f example/standalone-derby.yaml up

如果是使用镜像运行可以使用脚本 (Win 环境, 主要区别是折行标识符)

docker run `
  --name nacos-standalone-noauth `
  -e MODE=standalone `
  -e NACOS_AUTH_ENABLE=false `
  -p 8848:8848 `
  -d `
  -p 9848:9848  `
  acos/nacos-server:v2.5.1

如果需要鉴权, 考虑 Token 为 MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz

token 是 123456789012345678901234567890123 的 base64 字符串.

docker run `
  --name nacos-standalone-auth `
  -e MODE=standalone `
  -e NACOS_AUTH_ENABLE=true `
  -e NACOS_AUTH_TOKEN=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz `
  -e NACOS_AUTH_IDENTITY_KEY=nacos `
  -e NACOS_AUTH_IDENTITY_VALUE=nacos `
  -p 8848:8848 `
  -d `
  -p 9848:9848  `
  nacos/nacos-server:v2.5.1

必要时可以将配置文件作为外部的卷进行挂载, 省去了配置各个环境变量. 例如配置文件放在 C:/tools/nacos/conf 目录下时:

docker run `
  --name nacos-standalone `
  -e MODE=standalone `
  -v C:/tools/nacos/conf:/home/nacos/conf `
  -p 8848:8848 `
  -p 9848:9848 `
  -d `
  nacos/nacos-server:v2.5.1

需要注意的是, 如果开启 MySQL, 配置文件中就不能使用 127.0.0.1 的连接字符串.

2. 启用鉴权认证

启用鉴权只需要修改配置文件即可. 配置文件默认在安装目录的 conf 子目录下.

需要修改的配置有:

  1. 设置 The default token. 并且必须是超过 32 为秘钥的 base64 格式字符串.
  2. 设置 identity 的 key 与 value.
  3. 设置启用.
nacos.core.auth.enabled=true # 启用

nacos.core.auth.server.identity.key=nacos-key
nacos.core.auth.server.identity.value=nacos-value

# 原密码为: 123456789012345678901234567890123
nacos.core.auth.plugin.nacos.token.secret.key=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz 

然后再启用, 访问 http://localhost:8848/nacos, 会要求输入密码:

  1. 如果不填写密码, 直接提交, 系统会生成一个随机密码, 通过弹窗提示. 然后会要求重新登陆. 即可进入系统.
  2. 如果填写密码, 会弹框提示记住密码, 然后要求重新登陆, 即可进入管理系统.

image-20251029161328514

3. 启用 MySQL 作为数据源

默认 nacos 使用内置的嵌入式数据库作为数据源. 如果有较高负荷要求, 以及需要使用集群的情况下, 建议使用 MySQL 作为外部数据源. 基本处理步骤:

  1. 安装 MySQL 数据库, 并创建用户, 以及数据库和表.
  2. 修改 nacos 配置, 启用数据库.
  3. 如果运行失败, 根据数据库版本下载 Java 驱动.
  4. 重新运行 nacos.

创建数据库用户

CREATE USER 'nacos'@'localhost' IDENTIFIED BY '123456'; # 设置密码为 123456
CREATE DATABASE nacos; # 创建数据库
GRANT ALL ON nacos.* TO 'nacos'@'localhost'; # 分配权限, 可操作 nacos 数据库的所有表

修改 nacos 配置

spring.sql.init.platform=mysql # 推荐使用

db.num=1

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai

db.user.0=nacos
db.password.0=123456

执行 sql 脚本, 创建数据库表:

  1. 在 nacos 安装目录下的 conf 文件夹下找到 mysql-schema.sql.
  2. 打开数据库, 选择 nacos 数据库, 执行该 sql 脚本.

由于 nacos 默认支持 MySQL, 只需要重新运行 nacos 即可.

补充

如果依旧连接数据库报错, 可以在 MySQL 官网下载 Connector/j, 然后将其放在 nacos 安装目录下的 plugins/mysql 目录下.

注意下载的版本需要与数据库版本一致. 官网描述 nacos 原生支持, 但在验证过程中出现过连接失败的情况. 但也不是每次都如此.

image-20251029164138270

image-20251029164200344

Last Updated: 10/29/25, 5:48 PM
Contributors: jk