1. 简述
命名起源:Nacos(Dynamic Naming and Configuration Service),前四个字母分别为 Naming 和 Configuration 的前两个字母,最后的 s 为 Service。
Nacos = 注册中心 + 配置中心
2. 安装并运行
- 解压 tar.gz
- 执行 sql 脚本(Nacos 默认使用的是自带的嵌入式数据库 derby)
- 修改 application.yml
- sh startup.sh -m standalone
3. 服务注册中心
依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
服务注册中心对比:
Nacos 支持 AP 模式和 CP 模式的切换:
4. 服务配置中心
依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
bootstrap.yml 中编写 Nacos 配置:
spring.cloud.nacos.config.enabled=true
spring.cloud.nacos.config.server-addr=localhost:8848
# 1. 命名空间,用来做环境隔离
# 默认 public
# spring.cloud.nacos.config.namespace=<命名空间ID>
# 2. Nacos 中的配置集所在分组,默认 DEFAULT_GROUP
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.prefix=common
spring.profile.active=dev
spring.cloud.nacos.config.file-extension=properties
加载多配置集:
5. 集群和持久化配置
(1)在 Linux 上的 mysql 中运行 nacos-mysql.sql;
(2)修改 application.properties 中数据库的配置;
(3)Linux 服务器上 nacos 的集群配置 cluster.conf(IP 不能写 127.0.0.1,必须是 hostname -i
能够识别的 IP)
IP1:Port1
IP2:Port2
IP3:Port3
...
(4)编辑 Nacos 的启动脚本 startup.sh,使它能够接受不同的端口号进而启动不同的 nacos 实例:
(5)启动 Nacos:./startup.sh -p <Port1>
、./startup.sh -p <Port2>
、...
(6)修改 nginx.conf,然后启动 Nginx
(7)微服务注册进 Nacos 集群
spring:
application:
cloud:
nacos:
discovery:
server-addr: <NGINX-IP>:<NGINX-PORT>
(8)小结