Nacos安装及在项目中的使用
目录
- 概要
- 一、安装 Nacos
- 1、下载 Nacos
- 2、解压
- 3、启动 Nacos 服务器
- 4、自定义Nacos启动脚本
- 5、访问Nacos Web控制台
- 二、Nacos----服务注册与发现
- 1、添加 Nacos 依赖
- 2、配置 Nacos 服务器地址
- 3、使用 Nacos 注册服务
- 4、启动服务
- 三、Nacos----配置管理
- 1、创建配置数据
- 2、从 Nacos 获取配置
- 总结
概要
Nacos(Naming and Configuration Service)是一个开源的分布式服务发现和配置管理系统,由阿里巴巴开源,用于帮助开发者实现微服务架构中的服务注册、发现、动态配置等功能。Nacos 提供了服务注册与发现、动态配置、服务健康检查等核心功能,适用于各种基于云原生架构的应用。
一、安装 Nacos
1、下载 Nacos
前往 Nacos 的 GitHub 仓库下载最新版本的 Nacos 发行版。

2、解压
将下载的压缩包解压到你希望安装 Nacos 的目录

3、启动 Nacos 服务器
进入解压后的 Nacos\bin目录,cmd中执行以下命令启动 Nacos 服务器(单机启动)
startup.cmd -m standalone

出现如下界面则代表启动成功

4、自定义Nacos启动脚本
由于每次启动都需要到对应目录使用命令打开非常麻烦,所以在这里提供一个简单的启动脚本,方便启动Nacos
- 先在桌面新建一个.txt文件,然后在文件中输入下方命令,注意:安装目录路径替换为你的Nacos\bin路径
start cmd /k "cd /d 安装目录路径 && startup.cmd -m standalone"
- 然后保存.txt文件并修改文件后缀为.bat
- 之后双击.bat文件即可快速启动Nacos
5、访问Nacos Web控制台
一旦 Nacos 服务器启动,你可以使用 Web 控制台或 API 来进行服务注册、发现、配置等操作。
- 访问 Web 控制台: 在浏览器中输入 http://localhost:8848/nacos 访问 Nacos 控制台,默认用户名密码为 nacos,在这里可以看到Nacos中的各项信息

二、Nacos----服务注册与发现
Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。
1、添加 Nacos 依赖
首先,需要在 Spring Cloud 项目的 pom.xml 文件中添加 Nacos 相关的依赖
<!-- 服务注册发现 -->
<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>
2、配置 Nacos 服务器地址
在 Spring Cloud 项目的配置文件(如 application.yml 或 application.properties)中配置连接到 Nacos 服务器的地址
spring:cloud:nacos:config:server-addr: localhost:8848 # Nacos 服务器地址application: # 服务名称 名称唯一,如果一样就自动成了集群name: example
3、使用 Nacos 注册服务
在 Spring Cloud 项目的主启动类上添加@EnableDiscoveryClient 注解,启用服务发现功能
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}
4、启动服务
启动后就可以在Nacos的服务列表中看到注册的服务

三、Nacos----配置管理
1、创建配置数据
注:同上,需要先添加 Nacos 依赖和配置 Nacos 服务器地址
在 Nacos 控制台上创建配置数据。例如,可以创建一个名为 my-service-dev.yaml 的配置文件,内容如下
spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: password
然后,在 Spring Cloud 项目的 bootstrap.yml(或 bootstrap.properties)文件中配置 Nacos 配置中心的配置
spring:application:name: my-servicecloud:nacos:config:server-addr: ${NACOS_SERVER_ADDR:localhost:8848}group: DEFAULT_GROUPfile-extension: yaml
2、从 Nacos 获取配置
在 Spring Cloud 项目中,使用 @Value 注解或 @ConfigurationProperties 注解来获取从 Nacos 中获取的配置值
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {@Value("${spring.datasource.url}")private String datasourceUrl;@GetMapping("/config")public String getConfig() {return "Datasource URL: " + datasourceUrl;}
}
在上述示例中,@Value(“${spring.datasource.url}”) 会从 Nacos 配置中心获取名为 spring.datasource.url 的配置值
总结
综上所述,Nacos 可以在 Spring Cloud 项目中用于实现服务注册、发现和配置管理。通过添加依赖、配置 Nacos 服务器地址、使用 @EnableDiscoveryClient 启用服务发现,以及使用 @Value 注解获取配置,你可以方便地在 Spring Cloud 项目中使用 Nacos。
相关文章:
Nacos安装及在项目中的使用
目录 概要一、安装 Nacos1、下载 Nacos2、解压3、启动 Nacos 服务器4、自定义Nacos启动脚本5、访问Nacos Web控制台 二、Nacos----服务注册与发现1、添加 Nacos 依赖2、配置 Nacos 服务器地址3、使用 Nacos 注册服务4、启动服务 三、Nacos----配置管理1、创建配置数据2、从 Nac…...
overleaf中latex语法总结
α和bata $\alpha$ $\beta$上标和下标同时使用 $A_{IJ}^{IJ}$\\ %上标^下标_多个使用{}行内公式 \noindent $abc$\\ %行内公式\documentclass{article} \usepackage[utf8]{inputenc} \usepackage[namelimits]{amsmath} %数学公式 \usepackage{amssymb} %数学公式…...
Grafana配置邮件告警
1、创建一个监控图 2、grafana邮件配置 vim /etc/grafana/grafana.ini [smtp] enabled true host smtp.163.com:465 user qinziteng05163.com password xxxxx # 授权码 from_address qinziteng05163.com from_name Grafanasystemctl restart grafana-serv…...
setup中的nextTick函数
await nextTick() 是 Vue 3 的一个异步函数,用于等待 DOM 更新完成后执行回调函数, 它在 setup 函数中非常有用,可以确保在对 DOM 进行操作之前,先等待 Vue 完成相关的 DOM 更新。 下面是一个示例,演示了 await nextT…...
Matlab信号处理3:fft(快速傅里叶变换)标准使用方式
Fs 1000; % 采样频率 T 1/Fs; % 采样周期:0.001s L 1500; % 信号长度 t (0:L-1)*T; % 时间向量. 时间向量从0开始递增,0s~1.499sS 0.7*sin(2*pi*50*t) sin(2*pi*120*t); % 模拟原信号 X S 2*randn(size(t)); …...
Python|合并两个字典的几种方法
在Python中,有多种方法可以通过使用各种函数和构造函数来合并字典。在本文中,我们将讨论一些合并字典的方法。 1. 使用方法update() 通过使用Python中的update()方法,可以将一个列表合并到另一个列表中。但是在这种情况下,第二个…...
ElementUI浅尝辄止24:Message 消息提示
常用于主动操作后的反馈提示。与 Notification 的区别是后者更多用于系统级通知的被动提醒。 1.如何使用? Message 在配置上与 Notification 非常类似,所以部分 options 在此不做详尽解释,可以结合 Notification 的文档理解它们。Element 注…...
让照片动起来的软件,轻松制作照片动效
随着社交媒体的日益普及,我们对于照片的要求也越来越高。普通的照片已经不能满足我们的需求,我们希望照片更加生动有趣。照片动效便应运而生,它可以让照片动起来,吸引更多的注意力,让照片更加生动有趣。 照片动效制作起…...
【图解RabbitMQ-7】图解RabbitMQ五种队列模型(简单模型、工作模型、发布订阅模型、路由模型、主题模型)及代码实现
🧑💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…...
Linux命令200例:write用于向特定用户或特定终端发送信息
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师࿰…...
javaee spring整合mybatis spring帮我们创建dao层
项目结构 pom依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...
修改Tomcat的默认端口号
1、找到Tomcat的安装路径。 2、打开conf文件夹。 3、用记事本打开server.xml文件 4、找到 <Connector port"8080" protocol"HTTP/1.1",其中的8080就是tomcat的默认端口,将其修改为你需要的端口即可。...
Open3D Ransac拟合空间直线(python详细过程版)
RANSAC拟合直线 一、算法原理1、算法简介2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、算法简介 见:Open3D——RANSAC 三维点云空间直线拟合 2、参考文献...
题目:2729.判断一个数是否迷人
题目来源: leetcode题目,网址:2729. 判断一个数是否迷人 - 力扣(LeetCode) 解题思路: 对 n,2*n,3*n 中的数字出现次数计数,若数字 0 出现 0 次,数字 1~9…...
微服务模式:服务发现模式
由于微服务应用的动态性,很难调用具有固定 IP 地址的服务。这就是服务发现的概念出现的背景。服务发现有助于客户端了解服务实例的位置。在这种情况下,服务发现组件将充当服务注册表。 服务注册表是一个包含服务实例位置的集中式服务器/数据库。在微服务…...
9.4 数据库 TCP
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//判断数据库对象是否包含了自己使用的数据库if(!db.contains("Stu.db")){//不存在数据库࿰…...
普通用户使用spark的client无法更新Ranger策略
普通用户使用spark的client无法更新Ranger策略 报错图片: WARN org.apache.ranger.admin.client.RangerAdminRESTClient: Error getting Roles. secureModetrue, usercaojianxiangUCDIPA.VIATRIS.CC (auth:KERBEROS),responsef"httpStatusCode&quo…...
Git超详细教程
文章目录 一、安装并配置Git二、Git的基本操作三、Github/GitLab/Gitee四、分支 一、安装并配置Git 查看所有的全局配置项 git config --list --global查看指定的全局配置项 git config user.name git config user.email配置用户信息 git config --global user.name "…...
C++ 回调函数
一、使用方法 1.定义一个函数指针 typedef int (*pCallback)(int a, int b);2.定义一个带参的回调函数(注释部分是普通回调函数,不用定义第一步里的函数指针) //带参 int oneCallback(int a, int b, pCallback p) //int oneCallback(int a, i…...
xilinx FPGA IOB约束使用以及注意事项
文章目录 一、什么是IOB约束二、为什么要使用IOB约束1、在约束文件中加入下面约束:2、直接在代码中加约束, 三、IOB约束使用注意事项 一、什么是IOB约束 在xilinx FPGA中,IOB是位于IO附近的寄存器,是FPGA上距离IO最近的寄存器&am…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
