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

news2024/9/17 8:51:55

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

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 {
    @Resource
    private businessFeign feign;
    @GetMapping("/hello")
    public String hello(){
        return feign.hello();
    }
}

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

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

相关文章

【RL】强化学习入门:从基础到应用

本篇文章是博主强化学习RL领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章强化学习&#xff1a; 强化学习…

ECRS标准工时分析软件:中小企业数字化转型的工时管理利器

在当今全球化竞争日益激烈的背景下&#xff0c;中小企业面临着前所未有的挑战与机遇。为了在市场中脱颖而出&#xff0c;实现可持续发展&#xff0c;数字化转型已成为不可逆转的趋势。然而&#xff0c;对于资源相对有限的中小企业而言&#xff0c;如何高效、精准地管理工时&…

昇思25天学习打卡营第9天|RNN实现情感分类

第十天的不小心把第九天的覆盖了。现在重新补上。 情感分类是自然语言处理中的经典任务&#xff0c;是典型的分类问题。输入一句话&#xff0c;然后去语义理解这句话是褒义贬义还是中性的。不同的情感语境下理解的大基调是不同的。 RRN情感分类也是一个分类模型&#xff0c;是…

【提问募集】向世界级软件开发大师“Bob 大叔”Robert C. Martin 提出你的疑虑!

函数式编程作为一种编程范式&#xff0c;其根源可以追溯到 20 世纪 30 年代&#xff0c;当时数学家们正在探索计算理论的基础。1936 年&#xff0c;阿隆佐丘奇提出了 λ 演算&#xff08;Lambda Calculus&#xff09;&#xff0c;这是一种形式系统&#xff0c;用于表达函数抽象…

【EI会议征稿通知】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)

重要信息 会议官网&#xff1a;www.icbase.org&#xff08;查看详情&#xff09; 中文主页&#xff1a;【往届会后3个月检索】第五届大数据、人工智能与软件工程国际研讨会&#xff08;ICBASE 2024&#xff09;_艾思科蓝_学术一站式服务平台 会议时间&#xff1a;2024年9月2…

【优秀python案例】基于Python的京东商城口红商品的爬虫与可视化的设计与实现

摘要&#xff1a;随着互联网的普及&#xff0c;网络购物已经成为了人们购物的首选&#xff0c;用户只需要在电商平台上进行自己喜欢的商品进行搜素&#xff0c;就可以得到成千上万条商品信息。而在购买商品时&#xff0c;商品价格就成为了用户的主要关注对象&#xff0c;而在一…

深入理解 go context

打个广告&#xff1a;欢迎关注我的微信公众号&#xff0c;在这里您将获取更全面、更新颖的文章&#xff01; 原文链接&#xff1a;深入理解 go context 欢迎点赞关注 context 介绍 context 是 Go 语言中用于处理并发操作的一个重要概念。context也被称作上下文&#xff0c;主要…

vue基础知识总结(2)--- axios的使用

一.下载Vue3&#xff1a; 选择自己想要下载的项目文件夹&#xff0c;cmd回车打开命令栏&#xff0c;执行 &#xff1a; cnpm init vuelatest 然后等待一会就可以创建一个项目&#xff0c;并更改项目名&#xff1a; √ 请输入项目名称&#xff1a; ... vue-project 之后按照…

python做简单爬虫的一些常用组件

文章目录 前言requestjsonbs4 前言 最近一直在做零散的一次性的爬虫工作&#xff0c;基本都是用python开发的&#xff0c;整理一下python做小规模爬虫开发常用的一些工具类 request python最简单的发http请求的包&#xff0c;request.get和request.post就可以搞定绝大部分的…

ECMA6Script学习笔记(五)

【摘要】 本文是对自己学习ES6的学习笔记回顾,后面是概要: 本文介绍了ES6中的对象创建和拷贝方法。对象创建方面&#xff0c;ES6通过class关键字支持了面向对象的语法糖&#xff0c;包括属性设置、getter和setter方法、构造器、静态方法以及私有属性的定义。同时&#xff0c;展…

Linux系统root账号密码破解(重置)

如果想不起root账号密码应该怎么做&#xff1f; 先关机再重新启动&#xff08;重启虚拟机&#xff09;做相关操作&#xff0c;开机时不能让服务器完全启动&#xff0c;需要把开机引导系统&#xff08;GRUB&#xff09;调出来 注&#xff1a;在实际生产环境中使用的Linux没有图…

四,系统规划

一&#xff0c;企业系统规划法BSP&#xff08;2009、2010、2018&#xff0c;步骤以及优缺点、用到的工具&#xff09; 企业系统规划法&#xff08;Business Systems Planning&#xff0c;BSP&#xff09;是IBM公司20世纪70年代提出的一种结构化的信息系统规划方法。该方法通过…

Spring Cloud微服务项目公共类抽取

在微服务架构中&#xff0c;代码的重用性和维护性是非常重要的。Spring Cloud 提供了丰富的工具和框架来帮助我们构建和管理微服务应用&#xff0c;但随着项目规模的扩大&#xff0c;我们会遇到大量的重复代码和相似的逻辑。在这种情况下&#xff0c;抽取公共类成为提高代码质量…

回归测试:保障软件质量的利器

目录 前言1. 回归测试的概念1.1 定义1.2 目标 2. 回归测试的主要作用2.1 确保系统稳定性2.2 提高软件质量2.3 节省维护成本 3. 回归测试在整个测试中的地位3.1 单元测试阶段3.2 集成测试阶段3.3 系统测试阶段3.4 验收测试阶段 4. 回归测试的主要工具4.1 Selenium4.2 JUnit4.3 J…

《Redis设计与实现》读书笔记-数据结构(SDS)

目录 SDS定义 SDS结构 SDS与C字符串结构差异 SDS优点 SDS扩容策略 SDS惰性空间回收 SDS定义 SDS&#xff08;简单动态字符串&#xff09;&#xff0c;用于代替C语言自身的字符串&#xff08;字符容量与字符数组强相关&#xff09;。 SDS结构 sdshdr{int free //sds 中…

预警系统最小例程构建

预警系统最小例程构建 引言 为了更直观, 我们使用最小例程来实现这个预警流程, 环境温湿度读取,然后判断阈值, 超标则触发小灯警报。 最小例程工程备份链接: https://ww0.lanzoul.com/iz4wd261k21i 仿真文件工程备份链接: https://ww0.lanzoul.com/i8vTn261syyb 文章目录…

Jeecgboot仪表盘设计器使用https时访问报错

问题 仪表盘设计器设计好后&#xff0c;Nginx配置域名发送https请求时&#xff0c;/drag/page/queryById、/drag/page/addVisitsNumber仍发送http请求。导致发送下面错误&#xff1a; 原因 仪表盘设计器里设计的页面是由后端生成返回给前端的&#xff0c;后端是根据后端服…

docker安装elasticsearch(es)最新版本

docker安装elasticsearch&#xff08;es&#xff09; docker官网 https://hub.docker.com/ https://www.cnblogs.com/balloon72/p/13177872.html 1、拉取最新项目elasticsearch docker pull elasticsearch:8.14.3lscpu 查看架构 2、构建环境 mkdir -p /data/elasticsear…

【TOOLS】Project 2 Maven Central

发布自己的项目到maven中央仓库 Maven Central Account 访问&#xff1a;https://central.sonatype.com/&#xff0c;点击右上角&#xff0c;根据提示注册账号 构建User token &#xff0c;用于访问中央仓库的API&#xff1a; 点击右上角&#xff0c;查看账户点击Generate Us…

医院体检信息管理系统,C#体检系统源码,健康体检系统PEIS

体检服务全流程 检前 检前注意事项提醒-体检预约-套餐选择-体检签到-费用缴纳 检中 科室队列提醒-增项检中支付 检后 报告查询-体检百科-报告解读-问卷调查 体检管理系统模块介绍 一、登记管理模块 登记体检者基本信息&#xff0c;包括唯一的体检编号&#xff0c;姓名、…