nacos配置中心入门

目录

[1 Nacos 简介](#1 Nacos 简介)

[2 Nacos 作为配置中心的优势](#2 Nacos 作为配置中心的优势)

[3 安装与启动](#3 安装与启动)

[3.1 下载 Nacos](#3.1 下载 Nacos)

[3.2 安装前的系统要求](#3.2 安装前的系统要求)

[3.3 启动 Nacos Server](#3.3 启动 Nacos Server)

[3.3.1 在本地环境启动(单机模式)](#3.3.1 在本地环境启动(单机模式))

[3.3.2 集群模式(生产环境)](#3.3.2 集群模式(生产环境))

[4 配置中心的基础使用](#4 配置中心的基础使用)

[4.1 通过控制台管理配置](#4.1 通过控制台管理配置)

[4.1.1 创建新配置](#4.1.1 创建新配置)

[4.1.2 查看和编辑配置](#4.1.2 查看和编辑配置)

[4.2 客户端读取配置](#4.2 客户端读取配置)

[4.2.1 引入依赖](#4.2.1 引入依赖)

[4.2.2 配置 Nacos 地址](#4.2.2 配置 Nacos 地址)

[4.2.3 取配置数据](#4.2.3 取配置数据)

[4.3 动态刷新配置](#4.3 动态刷新配置)

[4.4 配置监听](#4.4 配置监听)

[5 总结](#5 总结)


1 Nacos 简介

  • 定义与背景 :Nacos(N aming and Co nfiguration Service)是一个由阿里巴巴开源的服务发现和配置管理平台。它支持动态服务发现、配置管理和服务健康监控,广泛应用于微服务架构。

  • 核心功能:Nacos 主要提供两大核心功能:服务发现和配置管理。作为配置中心,它的功能尤其突出在于管理和动态更新分布式系统中的配置。

2 Nacos 作为配置中心的优势

  • 动态配置更新:支持配置的实时推送和更新,不需要重启应用即可使配置生效。

  • 中化管理:提供统一的界面来管理所有的配置,便于运维。

  • 多环境支持:支持多环境隔离,方便不同环境下的配置管理。

  • 丰富的 API:支持 RESTful API,可灵活地与各种编程语言集成。

3 安装与启动

3.1 下载 Nacos
  1. 从官网或 GitHub 下载 :前往 Nacos 官方 GitHub 页面 下载最新稳定版本的二进制包。例如,nacos-server-2.x.x.zip。

  2. 解压缩:将下载的压缩文件解压到指定目录。

3.2 安装前的系统要求
  • 操作系统:支持 Linux、Windows、MacOS 等。

  • Java 环境:确保已安装 Java 8 或更高版本,并将 JAVA_HOME 设置为正确的路径。

3.3 启动 Nacos Server
3.3.1 在本地环境启动(单机模式)
复制代码

//单机模式适合本地开发和简单测试:

//进入解压目录 cd nacos/bin。

//在 Linux/Mac 上运行:-m standalone 参数表示以单机模式启动,而不是集群模式。 ./startup.sh -m standalone

//在 Windows 上运行: startup.cmd -m standalone

//启动成功后,默认会在 http://localhost:8848/nacos 启动控制台。

3.3.2 集群模式(生产环境)
复制代码

//配置集群

//编辑 conf 目录下的 cluster.conf 文件,将集群节点信息添加进去,如: 192.168.1.100:8848

192.168.1.101:8848

192.168.1.102:8848

//确保各个节点间网络互通,并启动 startup.sh 或 startup.cmd,但无需 -m standalone 参数。

//外部数据库配置

//在 conf 目录中,编辑 application.properties 文件: spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://<MYSQL_HOST>:3306/nacos_configcharacterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

db.user=<USERNAME>

db.password=<PASSWORD>

//导入 Nacos 提供的 nacos-mysql.sql 文件到 MySQL 中,以初始化数据库。

//打开浏览器,访问 http://localhost:8848/nacos。

//默认用户名和密码(如果有权限设置)通常为 nacos/nacos,也可以在 application.properties 中修改默认账户设置。

4 配置中心的基础使用

4.1 通过控制台管理配置

Nacos 提供了直观的 Web 控制台,用户可以方便地创建、修改和查看配置。

4.1.1 创建新配置
  1. 登录到 Nacos 控制台,默认访问地址为 http://localhost:8848/nacos。

  2. 选择"配置管理" > "配置列表"。

  3. 点击"新建配置"按钮,填写以下信息:

  • Data ID:配置项的唯一标识,例如 myapp-config.json。

  • Group:配置所属的分组,默认分组为 DEFAULT_GROUP。可以使用分组来隔离不同的业务模块或环境。

  • 配置内容:输入具体的配置内容,如 JSON、YAML 或纯文本。例如:

复制代码

"database.url": "jdbc:mysql://localhost:3306/mydb", "database.username": "root",

"database.password": "password"

  1. 点击"发布"保存配置。
4.1.2 查看和编辑配置
  • 返回"配置列表"页面,找到刚创建的配置项,点击其名称可以查看详情或进行修改。

  • 进行编辑后点击"发布"以应用新的配置。

4.2 客户端读取配置

在应用程序中读取 Nacos 配置,需要通过客户端 SDK 进行集成。例如,使用 Spring Boot 集成 Nacos 配置中心。

4.2.1 引入依赖

在 pom.xml 中引入 Nacos 配置的依赖:

复制代码

<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-config -->

<dependency>

<groupId>com.alibaba.cloud</groupId>

<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

<version>2022.0.0.0</version>

</dependency>

4.2.2 配置 Nacos 地址

在 application.properties 或 application.yml 中添加 Nacos 配置中心的地址:

复制代码

spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.application.name=my-app spring.cloud.nacos.config.namespace=public # 可选,指定命名空间

4.2.3 取配置数据

在代码中使用 @Value 注解来动态注入配置项:

java 复制代码
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigController {

    @Value("${database.url}")
    private String databaseUrl;

    @GetMapping("/config")
    public String getConfig() {
        return "Database URL: " + databaseUrl;
    }
}
4.3 动态刷新配置

Nacos 配置中心支持自动刷新配置,应用程序无需重启即可应用新配置。在 Spring Boot 中,需要在配置类或启动类上添加 @RefreshScope 注解:

java 复制代码
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@RefreshScope
@Component
public class MyConfigComponent {
    @Value("${database.url}")
    private String databaseUrl;

    @GetMapping("/config")
    public String getConfig() {
        return "Database URL: " + databaseUrl;
    }
}
4.4 配置监听

Nacos 支持配置的监听功能,应用程序可以监听配置变化并触发特定逻辑。

java 复制代码
import com.alibaba.nacos.api.config.annotation.NacosConfigListener;
import org.springframework.stereotype.Component;

@Component
public class ConfigChangeListener {

    @NacosConfigListener(dataId = "myapp-config.json", groupId = "DEFAULT_GROUP")
    public void onChange(String newConfig) {
        System.out.println("Config updated: " + newConfig);
        // 执行更新后的逻辑
    }
}

5 总结

通过这篇文章的介绍,相信你已经了解了 Nacos 作为配置中心的基本使用方法,从创建和管理配置到客户端集成和动态更新。Nacos 为分布式系统提供了安全、灵活的配置管理方案,使开发和运维人员可以轻松管理复杂的配置需求。希望这些内容能帮助你更好地应用 Nacos 来提升系统的稳定性与可维护性。如果需要更深入的研究或有进一步的问题,欢迎随时探讨!

相关推荐
陈平安Java and C5 小时前
MyBatisPlus
java
秋野酱5 小时前
如何在 Spring Boot 中实现自定义属性
java·数据库·spring boot
安的列斯凯奇6 小时前
SpringBoot篇 单元测试 理论篇
spring boot·后端·单元测试
Bunny02126 小时前
SpringMVC笔记
java·redis·笔记
blammmp6 小时前
Java EE 进阶:Spring MVC(1)
spring·java-ee·mvc
feng_blog66886 小时前
【docker-1】快速入门docker
java·docker·eureka
枫叶落雨2228 小时前
04JavaWeb——Maven-SpringBootWeb入门
java·maven
m0_748232398 小时前
SpringMVC新版本踩坑[已解决]
java
多则惑少则明8 小时前
SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别
spring boot·spring·ssh
码农小灰8 小时前
Spring MVC中HandlerInterceptor和Filter的区别
java·spring·mvc