一、配置 Nacos-Server

  1. GitHub 上下载 Nacos 2.x 服务器端(注意版本,本教程使用的是 nacos-server-2.2.3)
  2. 创建 MySQL 数据库(无论是否以 standalone 模式启动,最好都配置一下数据库,后面会有解释)
  3. 在 nacos/conf 目录下找到 application.properties 文件进行如下配置(备注:需要创建对应的数据库)
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=mysql
spring.sql.init.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=username
db.password=password

创建数据库时,使用的数据库名是什么,上面配置对应的数据库名称。同时,在 conf 目录下找到对应的 sql 脚本进行数据库初始化,例如:使用的是 MySQL 数据库就使用 nacos-mysql.sql、mysql-schema.sql 脚本初始化数据库。

  1. 配置成功之后,进入 nacos/bin 目录下,找到对应操作系统脚本使用如下命令启动:
# 此处的 m 参数表示 mode 模式,standalone 表示单机启动,否则会默认集群启动
# windows 启动命令
./startup.cmd -m standalone

# linux 启动命令
sh startup.sh -m standalone
  1. 启动日志正常,打开浏览器输入默认网址:localhost:8848/nacos 查看启动情况

二、配置 Java 客户端

  1. 引入 maven 库(需注意 SpringBoot 与 nacos 依赖的版本,如不想使用以下示例,可以到官网或 GitHub 查询版本兼容关系)
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.7.6</version>
</parent>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>2021.0.5.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <!--注册中心-->
  <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  </dependency>

  <!--配置中心-->
  <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  </dependency>
</dependencies>
  1. 在 application.yml 文件中编写注册中心以及配置中心
spring:
  application:
    # 引用 pom 文件中的项目名称
    name: @project.artifactId@
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        # 如果曾在 nacos-server 配置过账号密码,且启用了认证插件就需要配置,否则不需要
        password: nacos
        username: nacos
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
	# 此处必须添加否则启动报错
  config:
    import:
      - optional:nacos:test.yml
  1. 在 nacos-server 已经启动的情况下,启动配置好的微服务,检查在 nacos 的浏览器控制面板中微服务是否正常注册

三、FAQ

  1. Nacos 生产环境一般使用集群模式,本教程使用的 standalone(单机模式)
  2. Nacos 可以不配置数据库,也可以直接启动,此时 Nacos 会使用内置的数据库,但是如果使用内置数据库去搭配 Dubbo、Seata 等其他中间件可能会存在一些问题,所以建议使用自定义的数据库
  3. Nacos 服务器与客户端有比较麻烦的兼容关系,如果使用的 1.x 的服务端需要去官网或 GitHub issue 查找对应的解决方案哟
  4. Nacos 可能在配置中心创建配置文件时报错,此时极大可能就是内嵌数据库的问题,如不是请在浏览器中使用 F12 查看报错原因,利用搜索引擎寻找解决方案哦