nacos配置中心入门

news/2024/11/15 3:37:49/

目录

1 Nacos 简介

2 Nacos 作为配置中心的优势

3 安装与启动

3.1 下载 Nacos

3.2 安装前的系统要求

3.3 启动 Nacos Server

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

3.3.2 集群模式(生产环境)

4 配置中心的基础使用

4.1 通过控制台管理配置

4.1.1 创建新配置

4.1.2 查看和编辑配置

4.2 客户端读取配置

4.2.1 引入依赖

4.2.2 配置 Nacos 地址

4.2.3 取配置数据

4.3 动态刷新配置

4.4 配置监听

5 总结


Nacos 简介

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

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

Nacos 作为配置中心的优势

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

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

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

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

安装与启动

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.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);// 执行更新后的逻辑}
}

总结

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


http://www.ppmy.cn/news/1547115.html

相关文章

计算机毕业设计Python+Neo4j知识图谱医疗问答系统 大模型 机器学习 深度学习 人工智能 大数据毕业设计 Python爬虫 Python毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

浅谈:基于三维场景的视频融合方法

视频融合技术的出现可以追溯到 1996 年 , Paul Debevec等 提出了与视点相关的纹理混合方法 。 也就是说 &#xff0c; 现实的漫游效果不是从摄像机的角度来看 &#xff0c; 但其仍然存在很多困难 。基于三维场景的视频融合 &#xff0c; 因其直观等特效在视频监控等相关领域有着…

【SpringBoot】21 @Async异步任务线程池的隔离

Git仓库 https://gitee.com/Lin_DH/system 介绍 线程池隔离&#xff1a;指一种通过为每个服务提供独立的线程池来隔离服务之间的资源和执行环境的做法。 为什么需要线程池隔离&#xff1f; 资源隔离&#xff0c;每个服务都有独立的线程池&#xff0c;可以避免由于某个服务的…

电商系统设计与实现:Spring Boot框架

6 系统测试 程序软件一旦被开发完成之后&#xff0c;在真正投入日常生活中进行运行使用之前&#xff0c;是必须要经历测试这一个重要的操作环节&#xff0c;因为开发期间注重的是每个单独功能模块的开发&#xff0c;尽管每次开发完成一个单独功能模块时&#xff0c;会通过单元测…

09C++结构体

/*结构体属于用户自定义的数据类型&#xff0c; 允许用户存储不同的数据类型, 语法:struct 结构体名{结构体成员列表} ;*/ //struct 结构体名 变量名 #include <iostream> #include <string> using namespace std; struct student { string name; int age;int s…

【网络】完美配置 HTTPS:优化 SSL/TLS 证书以增强网站安全和性能

目录 引言一、申请 SSL/TLS 证书1.1 什么是 SSL/TLS 证书&#xff1f;1.2 如何申请 SSL/TLS 证书&#xff1f;1.3 SSL 证书的种类 二、安装 SSL/TLS 证书2.1 Apache 安装 SSL 证书2.2 Nginx 安装 SSL 证书2.3 IIS 安装 SSL 证书2.4 测试 SSL 配置 三、强制使用 HTTPS3.1 设置 H…

管理Linux软件包和进程

管理Linux软件包和进程 1. 源码下载安装软件 1.1 概念 源码文件&#xff1a;程序编写者使用C或C等语言编写的原始代码文本文件源码文件使用.tar.gz或.tar.bz2打包成压缩文件 1.2 特点 源码包可移植性好&#xff0c;与待安装软件的工作环境依赖性不大由于有编译过程&#x…

普通电脑上安装属于自己的Llama 3 大模型和对话客户端

#大模型下载地址&#xff1a;# Llama3 因为Hugging Face官网正常无法访问&#xff0c;因此推荐国内镜像进行下载&#xff1a; 官网地址&#xff1a;https://huggingface.co 国内镜像&#xff1a;https://hf-mirror.com GGUF 模型文件名称接受&#xff0c;如上述列表中&…