Nacos配置到springboot快速入门(笔记)

本人学习中的简单笔记,本文写的极其不详细,慎看!!!

Nacos 简介

Nacos 致力于帮助开发者发现、配置和管理微服务。它提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 特性介绍

Nacos 具有以下特性:

  • 服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。
  • 动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
  • 动态 DNS 服务:动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。
  • 服务及其元数据管理:支持从微服务平台建设的视角管理数据中心的所有服务及元数据。

主要的两大功能

注册中心

让应用相互认识

功能:健康检查,路由转发,远程调用

配置中心

动态修改线上配置

功能:开关,阈值,枚举类

安装

下载地址

以2.2.1版本为例子,其他高版本配置可能有调整,介意请参考其他教程

Release 2.2.1 (Mar 17th, 2023) · alibaba/nacos (github.com)

解压目录不得有中文

配置文件

解压后进入conf修改配置修改conf目录下的application.properties

添加其中的nacos.core.auth.plugin.nacos.token.secret.key配置,在配置项中填入一个不低于32位的字符串后保存即可

Base64 在线编码解码 | Base64 加密解密 - Base64.us

nacos.core.auth.plugin.nacos.token.secret.key=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=

启动

 nacos/bin目录执行

startup.cmd -m standalone


进入网址 

http://127.0.0.1:8848/nacos/

用户名密码 都是nacos

配置springboot

引入依赖

引入阿里巴巴的统一依赖管理

            <!-- spring cloud alibaba  https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/README-zh.md
--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2022.0.0.0-RC1</version><type>pom</type><scope>import</scope></dependency>

再引入配置中心的依赖,无需设置版本,上一个依赖管理会自动选择版本

        <!-- 配置中心 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

 为后续引入配置做准备

        <!--SpringBoot 2.4版本之后 SpringCloud 2020,需要引入该依赖,才能读取bootstrap文件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>

resource增加bootstrap.properties

# 注册中心的名字
spring.application.name=member## 启动环境,nacos会根据环境读不同的配置dataId:member-dev.properties
spring.profiles.active=dev## nacos server地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
## 配置中心文件后缀,默认properties
spring.cloud.nacos.config.file-extension=properties

插入一个bootstrap和application的运用场景的区别

bootstrap常见应用场景:
(1)bootstrap配置文件中的配置一般是引导配置,类似于bios,用于连接到spring cloud配置中心,加载应用真正需要的配置数据,如:
spring.application.name 和 spring.cloud.config.server.git.uri
(2)配置一些固定的不能被覆盖的属性
默认情况下,本地的配置文件不能覆盖远程配置
(3)配置加密解密外部配置信息的相关属性
application常见应用场景:spring boot项目的自动化配置
注意:在一些情况上不用区分这两个配置文件,只需使用application.yml即可,把全部配置信息都写在这里,效果基本是一致的

简单说,springboot一般用application,springcloud用bootstrap,而且bootstrap优先级高于application

测试

进入nacos创建配置如下

其中Data ID命名规则如下 

${应用名}-${环境标识}.properties/yml

按照bootstrap.application中的配置做修改

 创建测试Controller

@RefreshScope//该注解会识别该区域 并实时更新nacos中的配置信息
@RestController
public class TestController {@Value("${test.nacos}")private String testNacos;@GetMapping("/hello")public String hello() {return String.format("Hello %s!", testNacos);}
}

启动项目后,访问网站成功(member是我自己配置的,正常只需要访问http://127.0.0.1:端口号/helllo)

 

配置中心 

配置中心就是一种统一管理各种应用配置的基础服务组件,它将将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置。

 多环境配置

引入依赖

在上面安装测试中已经引入

添加配置

nacos中添加配置如下

访问成功

命名空间

主要可以用与项目隔离或者不同生产环境配置分离 

 

 bootstrap引入配置(这里的namespace是命名空间ID)

## nacos命名空间
spring.cloud.nacos.config.namespace=train

 

注册中心

  注册中心是微服务架构中的纽带,类似于“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址并进行调用。注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的,更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。

引入依赖

        <!-- 注册中心 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>

 bootstrap中引入

## nacos server注册中心地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.namespace=train

注册成功  

在nacos中就可以看到我配置好的多个服务

同时可以进行上下线,编辑等操作

 服务间调用

以引入feign作为演示

business服务下的test接口

@RestController
public class Test {@GetMapping("/hello")public String hello(){return "hello,Feign!";}
}

batch

新增方法以调用business的test接口

@FeignClient(name="business")
public interface businessFeign {@GetMapping("/business/hello")String hello();
}

新增测试接口测试是否调用成功

@RestController
public class Test {@Resourceprivate businessFeign feign;@GetMapping("/hello")public String hello(){return feign.hello();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281256.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

CSCP、CPIM和CLMP三大证书的区别?如何选择?

在制造型企业、供应链和运营管理专业人士都会不断寻找方法来提升他们的技能和职业前景。三种流行的认证——CSCP&#xff08;Certified Supply Chain Professional&#xff09;、CPIM&#xff08;Certified in Planning and Inventory Management&#xff09;以及CLMP&#xff…

创客项目秀 | 基于xiao的光剑

在《星球大战》宇宙中&#xff0c;光剑不仅仅是武器;它们是持有者与原力的桥梁&#xff0c;制造一把光剑几乎是每个创客的梦想&#xff0c;今天给大家带来的是国外大学生团队制作的可伸缩光剑项目。 材料清单&#xff1a; 电机驱动模块1:90减速电机套装MP3模块、喇叭Xiao RP2…

一「骑」就LUCKY!凯迪拉氪强劲动力,带你一路顺畅,幸运随行!

好运&#xff0c;其实就是毫不费劲的完成心里所想的事情。简单来说&#xff0c;是不需要太多努力&#xff0c;就能得到比较大的回报。每个人都希望自己拥有好运气&#xff0c;但这就跟抽盲盒一样&#xff0c;可能穷极一生都享受不到。 所以&#xff0c;与其期待虚无缥缈的好运…

爬虫问题---ChromeDriver的安装和使用

一、安装 1.查看chrome的版本 在浏览器里面输入 chrome://version/ 回车查看浏览器版本 Chrome的版本要和ChromeDriver的版本对应&#xff0c;否则会出现版本问题。 2.ChromeDriver的版本选择 114之前的版本&#xff1a;https://chromedriver.storage.googleapis.com/index.ht…

生成式AI在金融领域的研究与应用

引言 科技的进步日新月异&#xff0c;伴随着移动终端与网络的不断迭代&#xff0c;人工智能领域也从专家系统到卷积神经网络&#xff0c;从Transform到生成式AI&#xff0c;乃至未来的AGI&#xff0c;不断改变我们的生活方式&#xff0c; 科技发展驱动人类社会加速迈向全面智能…

无人机之交通管理篇

无人机技术已经渗透到社会的各个领域&#xff0c;其中交通监控与管理便是其应用的重要方向之一。无人机凭借其独特的优势&#xff0c;如高效性、灵活性、实时性等&#xff0c;为交通监控与管理带来了革命性的变革。 一、无人机在交通监控中的应用 1、实时监控与数据采集 无人…

SuperMap iDesktopXiClient3D for WebGL 基于确定性空间插值生成水体流场

目录 摘要1 原始数据解析2 数据空间插值2.1流场UVW0.dat文件转xlsx2.2生成流场点数据2.3生成U、V栅格数据2.4裁剪U、V栅格数据2.5生成零值棋盘网格2.6生成U、V棋盘栅格 3 棋盘栅格转棋盘点3.1U、V棋盘栅格矢量化3.2U、V字段追加3.3流场数据JSON标准解析3.3.1流场数据JSON范例3.…

数据结构与算法-索引堆及其优化

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、索引堆…

基于SpringBoot+Vue的档案管理系统(带1w+文档)

基于SpringBootVue的档案管理系统(带1w文档) 基于SpringBootVue的档案管理系统(带1w文档) 随着信息化的不断发展&#xff0c;科技的进步也越来越大。软件编程是一个不断发展的行业&#xff0c;每个行业都必须进行适合自身特点的系统开发&#xff0c;才能在机构中生存和发展。当…

区块链技术在智能城市中的创新应用探索

随着全球城市化进程的加速和信息技术的快速发展&#xff0c;智能城市成为了未来城市发展的重要方向。在智能城市建设中&#xff0c;区块链技术作为一种去中心化、安全和透明的分布式账本技术&#xff0c;正逐渐展现出其在优化城市管理、提升公共服务和增强城市安全性方面的潜力…

【大模型系列篇】Vanna-ai基于检索增强(RAG)的sql生成框架

简介 Vanna是基于检索增强(RAG)的sql生成框架 Vanna 使用一种称为 LLM&#xff08;大型语言模型&#xff09;的生成式人工智能。简而言之&#xff0c;这些模型是在大量数据&#xff08;包括一堆在线可用的 SQL 查询&#xff09;上进行训练的&#xff0c;并通过预测响应提示中最…

JVM: 堆上的数据存储

文章目录 一、对象在堆中的内存布局1、对象在堆中的内存布局 - 标记字段2、JOL打印内存布局 二、元数据指针 一、对象在堆中的内存布局 对象在堆中的内存布局&#xff0c;指的是对象在堆中存放时的各个组成部分&#xff0c;主要分为以下几个部分&#xff1a; 1、对象在堆中的…

真没想到BitLocker加密的系统碰上CrowdStrike蓝屏故障也能恢复如初!

网管小贾 / sysadm.cc 三声金钟响&#xff0c;六阵御鼓催。 百官列两扉&#xff0c;天子临朝威。 是日早朝&#xff0c;八宝金殿之中&#xff0c;天子端坐龙椅上。 群臣山呼&#xff1a;“万岁&#xff0c;万岁&#xff0c;万万岁……&#xff01;” 天子面沉似水、不怒自威…

【数学建模】【优化算法】:【MATLAB】从【一维搜索】到】非线性方程】求解的综合解析

目录 第一章&#xff1a;一维搜索问题 黄金分割法 股票交易策略优化 总结&#xff1a; 第二章&#xff1a;线性规划 线性规划&#xff08;Simplex 算法&#xff09; 生产计划优化 总结&#xff1a; 第三章&#xff1a;无约束非线性优化问题 梯度下降法 神经网络训练…

elementUI 的el-date-picker日期,开始时间不能大于结束时间

需求描述:form表单里有开始日期和结束日期,要求开始日期不能大于结束日期,但是开始日期可以等于结束日期。 效果如下: 实现代码: <el-form ref="form" :model="form" :rules="rules" label-width="140px"><el-form-it…

Docker镜像拉取失败解决方案

文章目录 问题及分析解决方案1.先排查DNS2.修改源3.重启docker服务 问题解决 问题及分析 今天我用docker拉取镜像的时候报错 error pulling image configuration: download failed after attempts6: dial tcp xxx.xx.xxx.xx:xxx: i/o timeout 连接超时大概率以下两个问题 1.DN…

队列...

队列的定义 队列是一种操作受限的线性表,只允许表的一端在进行插入,而在表的另一端进行删除,其操作特征为先进先出. 队头:允许删除的一端 队尾:允许插入的一端 队列的基本操作 InitQueue(&Q) 初始化 isEmpty(Q) 判断空 EnQueue(&Q,x)入队 DeQueue(&Q,&…

基于北京市空气质量影响因素研究系统【城市可换爬虫获取、LSTM、Flask、Echarts、MySQL、TensorFlow】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主研究背景国内外研究现状研究目的研究意义关键技术理论介绍数据采集数据分析与大屏设计大屏相关性分析LSTM模型训练系统集成展示总结每文一语 有需要本项目的代码或文档以及全部资源&#xf…

【限免】频控阵雷达:概念、原理与应用【附MATLAB代码】

​微信公众号&#xff1a;EW Frontier QQ交流群&#xff1a;949444104 主要内容 PDA、FDA MATLAB代码 %---------------------------------------- %功能:FDA和相控阵天线方向图 %版本:ver1.0 %时间:2017.11.1 %--------------------------------------- clear all; clc; disp…

Python面试宝典第23题:分发糖果

题目 n 个孩子站成一排&#xff0c;给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求&#xff0c;给这些孩子分发糖果。 &#xff08;1&#xff09;每个孩子至少分配到 1 个糖果。 &#xff08;2&#xff09;相邻两个孩子评分更高的孩子会获得更多的糖果。 请…