当前位置: 首页 > ds >正文

Nacos快速入门:从安装到实战

以下为 Nacos 快速入门指南,结合官方文档与实践经验整理(2025年6月),按模块分步详解:


🔧 一、Nacos 安装

  1. 单机模式(开发测试)
    安装包下载地址:https://nacos.io/download/nacos-server/
    在这里插入图片描述

    # 下载
    wget https://github.com/alibaba/nacos/releases/download/2.3.2/nacos-server-2.3.2.zip
    unzip nacos-server-2.3.2.zip
    cd nacos/bin# 启动(默认账号 nacos/nacos)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/53e8f47aea8d4e628a82aef99d63a6b7.png#pic_center)./startup.sh -m standalone  # Linux/Mac
    startup.cmd -m standalone   # Windows 
    
    • 控制台地址:http://localhost:8848/nacos
    • 安全提示:生产环境需启用鉴权(修改 conf/application.properties):
      nacos.core.auth.enabled=true  # 开启访问控制 
      
  2. 集群模式(生产)

    • 修改 conf/cluster.conf 添加节点 IP(至少3台)
    • 切换内置数据库为 MySQL(防数据丢失) :
      spring.datasource.platform=mysql
      db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?useUnicode=true
      

📡 二、服务注册

1. 配置 Nacos 地址
# bootstrap.yml(优先级高于 application.yml)
spring:application:name: order-service  # 服务名cloud:nacos:discovery:server-addr: 127.0.0.1:8848  # Nacos 地址 ephemeral: true   # 是否临时实例(默认 true,宕机自动剔除)
2. 启动微服务

在启动类添加注解(可选,Spring Cloud 2020+ 可省略):

@SpringBootApplication
@EnableDiscoveryClient  // 启用服务发现 
public class OrderApplication { ... }

启动后可在 Nacos 控制台 服务管理 → 服务列表 查看注册实例 。


🔍 三、服务发现与调用

1. 调用方式

① RestTemplate + 负载均衡

@Bean
@LoadBalanced  // 开启负载均衡
public RestTemplate restTemplate() {return new RestTemplate();
}// 调用示例
String result = restTemplate.getForObject("http://user-service/getUser",  // 直接使用服务名String.class
); 

② LoadBalancerClient(灵活控制)

@Autowired
private LoadBalancerClient loadBalancerClient;ServiceInstance instance = loadBalancerClient.choose("user-service");
String url = "http://" + instance.getHost() + ":" + instance.getPort() + "/getUser"; 

③ DiscoveryClient API(原生查询)

@Autowired
private DiscoveryClient discoveryClient;List<ServiceInstance> instances = discoveryClient.getInstances("user-service"); 

⚙️ 四、配置中心集成

1. 导入远程配置
# bootstrap.yml
spring:config:import: nacos:service-order.properties  # 导入配置 cloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: yaml      # 配置格式(支持 properties/yaml)namespace: dev            # 环境隔离(非必填)group: DEFAULT_GROUP      # 分组(默认 DEFAULT_GROUP)
2. 动态刷新配置

@RefreshScope 注解

@RefreshScope  // 配置变更时刷新此Bean
@RestController
public class ConfigController {@Value("${app.max.retry:3}")private int maxRetry; 
} 

@ConfigurationProperties 绑定

@Component
@ConfigurationProperties(prefix = "app")  // 自动绑定 app.* 配置
@Data  // Lombok 生成 getter/setter
public class AppConfig {private int maxRetry;private String env;
} 
3. 配置隔离三要素
维度作用配置示例
Namespace隔离环境(dev/test/prod)namespace: dev
Data ID配置文件唯一标识service-order.yaml
Group业务分组(默认 DEFAULT_GROUPgroup: ORDER_GROUP

通过 NacosConfigManager 可主动监听配置变化:

configManager.getConfigService().addListener("dataId", "group", listener); 

💎 最佳实践

  1. 健康检查:临时实例 15 秒无心跳标记异常,30 秒自动剔除 。
  2. 安全加固:生产环境开启鉴权并配置 MySQL 持久化 。
  3. 配置规范
    • Data ID 格式:${spring.application.name}.${file-extension}
    • 敏感配置使用 Jasypt 加密 。
http://www.xdnf.cn/news/13693.html

相关文章:

  • MySQL 8.0 OCP 英文题库解析(十七)
  • 打砖块(洛谷)
  • 移动端 1px 问题解决方案
  • 从字节到对象的漂流---JavaIO流篇
  • 5. 相机拍摄简单构图
  • 1.9 Express
  • Flutter 常用组件详解:Text、Button、Image、ListView 和 GridView
  • c++中main函数执行完后还执行其它语句吗?
  • FreeRTOS互斥量
  • 面向异构系统的多面体编译优化关键技术研究——李颖颖博士
  • Linux 任务调度策略
  • 一数一源一标准的补充
  • 论文阅读:强化预训练
  • 强化学习入门:交叉熵方法实现CartPole智能体
  • 一个超强的推理增强大模型,开源了,本地部署
  • 跨网数据摆渡系统:破解数据流通难题的“标准答案”
  • 别人如何访问我的内网呢? 设置让外网访问内网本地服务器和指定端口应用的几种方式
  • 曼昆《经济学原理》第九版 第十八章生产要素市场
  • Vue Electron 使用来给若依系统打包成exe程序,出现登录成功但是不跳转页面(已解决)
  • Vue 中 data 选项:对象 vs 函数
  • Rust 学习笔记:通过异步实现并发
  • 【题解-洛谷】P2935 [USACO09JAN] Best Spot S
  • 算法训练第十五天
  • docker推荐应用汇总及部署实战
  • ComfyUI-安装
  • 不装 ROS 也能用 PyKDL!使用kdl_parser解析URDF并进行IK
  • Linux-进程间的通信
  • 大数据服务器的特点都指什么?
  • Python----OpenCV(图像处理——边界填充、图像融合、图像阈值、深拷贝与浅拷贝)
  • 零基础学前端-传统前端开发(第三期-CSS介绍与应用)