SpringCloudAlibaba-Nacos

运行Nacos服务
官网
https://nacos.io/
单机运行模式

startup.cmd -m standalone

访问 http://localhost:8848/nacos

核心功能

作为服务注册发现(替代Eureka)

添加依赖

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

添加配置

spring:
  application:
    name: NACOS-PAYMENT-SERVICE
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

management:
  endpoints:
    web:
      exposure:
        include: '*'

启动类配置@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProvider9001 {
    public static void main(String[] args) {
        SpringApplication.run(NacosProvider9001.class, args);
    }
}

启动后就可以从nacos网站的服务列表看到当前服务

几个常见注册中心区别

组件 CAP 模型 一致性机制
​​Nacos​​ ​​AP/CP 可切换​​ 支持临时节点(AP)和持久节点(CP)模式
​​Eureka​​ ​​AP​​ 最终一致性
​​Zookeeper​​ ​​CP​ ZAB 协议强一致性
​​Consul​​ ​​CP​​ Raft 协议强一致性

Nacos生态图
Nacos生态图

作为配置中心(替代Config)

添加依赖

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

配置启动类

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfig3377 {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfig3377.class);
    }
}

添加bootstrap配置

server:
  port: 3377

spring:
  application:
    name: NACOS-CONFIG-3377
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
        file-extension: yaml

# 暴露端点
management:
  endpoints:
    web:
      exposure:
        include: '*'

可以通过spring.cloud.nacos.config.namespacespring.cloud.nacos.config.group指定命名空间和分组

添加application配置

spring:
  profiles:
    active: dev

创建nacos平台配置
在nacos平台的配置管理 - 配置列表中创建配置,DataID要保持以下格式
${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
其中${spring.cloud.nacos.config.prefix}默认取spring.application.name
需要注意的是,如果file-extension用的yaml,那么DataID的名称也要用yaml,不要用yml后缀

创建测试类

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
    @Value("${data.user.password}")
    private String password;

    @GetMapping("/getConfigInfo")
    public String getConfig() {
        return password;
    }
}

启动项目后访问测试

curl -X GET "http://localhost:3377/config/getConfigInfo"
1234
# 修改后测试
curl -X GET "http://localhost:3377/config/getConfigInfo"
1235

可以发现nacos不需要重启,立马生效

持续学习

[!官方文档]
https://nacos.io/docs/v2/what-is-nacos/

posted @ 2025-08-25 18:57  一只盐桔鸡  阅读(11)  评论(0)    收藏  举报