一、配置 Nacos-Server
- 从 GitHub 上下载 Nacos 2.x 服务器端(注意版本,本教程使用的是 nacos-server-2.2.3)
- 创建 MySQL 数据库(无论是否以 standalone 模式启动,最好都配置一下数据库,后面会有解释)
- 在 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 脚本初始化数据库。
- 配置成功之后,进入 nacos/bin 目录下,找到对应操作系统脚本使用如下命令启动:
# 此处的 m 参数表示 mode 模式,standalone 表示单机启动,否则会默认集群启动
# windows 启动命令
./startup.cmd -m standalone
# linux 启动命令
sh startup.sh -m standalone
- 启动日志正常,打开浏览器输入默认网址:localhost:8848/nacos 查看启动情况
二、配置 Java 客户端
- 引入 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>
- 在 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
- 在 nacos-server 已经启动的情况下,启动配置好的微服务,检查在 nacos 的浏览器控制面板中微服务是否正常注册
三、FAQ
- Nacos 生产环境一般使用集群模式,本教程使用的 standalone(单机模式)
- Nacos 可以不配置数据库,也可以直接启动,此时 Nacos 会使用内置的数据库,但是如果使用内置数据库去搭配 Dubbo、Seata 等其他中间件可能会存在一些问题,所以建议使用自定义的数据库
- Nacos 服务器与客户端有比较麻烦的兼容关系,如果使用的 1.x 的服务端需要去官网或 GitHub issue 查找对应的解决方案哟
- Nacos 可能在配置中心创建配置文件时报错,此时极大可能就是内嵌数据库的问题,如不是请在浏览器中使用 F12 查看报错原因,利用搜索引擎寻找解决方案哦