nacos--基础--5.1--集成--SpringCloud--配置管理、服务发现、服务注册

news2024/11/29 2:28:50

nacos–基础–5.1–集成–SpringCloud–配置管理、服务发现、服务注册


代码位置

https://gitee.com/DanShenGuiZu/learnDemo/tree/master/nacos-learn/nacos-spring-cloud

1、介绍

  1. 主要面向 Spring 的使用者
  2. 通过2个实例,来介绍nacos和Spring的集成
    1. 配置管理
    2. 服务注册与发现

2、配置管理

实现配置的动态变更

2.1、代码

2.1.1、结构

在这里插入图片描述

2.1.2、代码

依赖

<!--nacos 配置管理-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.9.RELEASE</version>
</dependency>

注意:

  1. 版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。
  2. 版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本
  3. 版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

配置管理controller

@Controller
@RequestMapping("/config")
// @RefreshScope 实现配置自动更新:
@RefreshScope
public class ConfigManagerController {


    @Value("${useLocalCache:false}")
    private boolean useLocalCache;
    
    @RequestMapping("/get")
    @ResponseBody
    public boolean get() {
        return useLocalCache;
    }
}


bootstrap.properties


# 配置中心地址
spring.cloud.nacos.config.server-addr=192.168.187.171:8848
spring.cloud.nacos.config.file-extension=properties
spring.application.name=example

说明:

之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  1. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  2. spring.profiles.active 即为当前环境对应的 profile
    1. 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
  3. file-exetension为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。
    1. 目前只支持 properties 和 yaml 类型。

2.2、测试

2.2.1、获取配置信息

http://localhost:8080/config/get

在这里插入图片描述

2.2.2、设置配置信息

首先通过调用 Nacos Open API 向 Nacos Server 发布配置:dataId 为example.properties,内容为useLocalCache=true

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=true"

在这里插入图片描述

在这里插入图片描述

3、服务发现

实现服务的注册与发现

在这里插入图片描述

3.1、生产者

3.1.1、结构

在这里插入图片描述

3.1.2、代码

依赖

        <!--nacos服务发现和注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.9.RELEASE</version>
        </dependency>

注意:

  1. 版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。
  2. 版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本
  3. 版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

服务注册和发现controller


/**
 *
 * 服务注册和发现
 * 
 * @author <a href="920786312@qq.com">周飞</a>
 * @since 2022/10/17 10:34
 */
@RestController
@RequestMapping("/provider")
public class ProviderController {
    
    @RequestMapping(value = "/service", method = RequestMethod.GET)
    public String service() {
        return "调用生产者服务";
    }
}

application.properties

server.port=8070
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=192.168.187.171:8848

ProviderApplication

@SpringBootApplication
//通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能
@EnableDiscoveryClient
public class ProviderApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }

}

3.2、消费者

3.2.1、结构

在这里插入图片描述

3.2.2、代码

依赖

        <!--nacos服务发现和注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.9.RELEASE</version>
        </dependency>

注意:

  1. 版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。
  2. 版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本
  3. 版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

服务注册和发现controller


/**
 *
 * 服务注册和发现
 * 
 * @author <a href="920786312@qq.com">周飞</a>
 * @since 2022/10/17 10:34
 */
@RestController
@RequestMapping("/consumer")
public class ConsumerController {
    
    // 给 RestTemplate 实例添加 @LoadBalanced 注解,开启 @LoadBalanced 与 Ribbon 的集成:
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    
    @Autowired
    private RestTemplate restTemplate;
    
    @RequestMapping(value = "/service", method = RequestMethod.GET)
    public String service() {
        //调用生产者服务
        String provider = restTemplate.getForObject("http://service-provider/provider/service/", String.class);
        return "消费者调用服务|"+provider;
    }
}

application.properties

server.port=8080
spring.application.name=service-consumer
spring.cloud.nacos.discovery.server-addr=192.168.187.171:8848


ProviderApplication

@SpringBootApplication
//通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能
@EnableDiscoveryClient
public class ConsumerApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
    
}


3.3、测试

3.3.1、启动生产者和消费者

在这里插入图片描述

3.3.1、调用消费者服务

http://localhost:8080/consumer/service

在这里插入图片描述

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

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

相关文章

运行时发现文件路径输出404

运行时发现文件路径输出404 tomcat不能显示中文原因主要是编码的问题&#xff0c; 因为Tomcat5的http Connector所用的URI解码默认用的是 ISO-8859-1&#xff0c; 而一般浏览器默认用的发送编码为UTF-8&#xff0c;这样问题就出现了&#xff0c; 初步的解决方法如下&#xff1a…

Mentor-dft 学习笔记 day40-Basic Test Data Formats for Patterns

Reduce Serial Loading Simulation Time with Sampling 使用write_patterns命令时&#xff0c;可以使用-sample开关保存完整pattern集的样本。这将减少pattern文件中的pattern数量&#xff0c;从而减少模拟时间。此外&#xff0c;-Sample开关允许您控制样本中包含的每种类型的p…

回归预测 | MATLAB实现WOA-BiLSTM鲸鱼算法优化双向长短期记忆神经网络多输入单输出航空寿命数据回归预测

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

ADI Blackfin DSP处理器-BF533的开发详解48:图像处理专题-Rotation (图像旋转处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像旋转处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

【OpenCV-Python】教程:5-1 背景减法

OpenCV Python 背景减法 【目标】 读视频与显示视频创建背景模型与更新背景模型 【概述】 背景相减&#xff08;BS&#xff09;是一种常用且广泛使用的技术&#xff0c;用于通过使用静态相机来生成前景掩模&#xff08;即&#xff0c;包含属于场景中运动对象的像素的二值图…

UEFI固件使用OpenSSL暴露了软件材料清单(SBOM)

Binarly REsearch团队近日深入研究了最近的OpenSSL安全更新给UEFI固件供应链生态系统带来怎样的影响以及OpenSSL版本在固件环境中是如何广泛使用的。研究结果不容乐观。 科技行业正在积极讨论使用“软件材料清单”&#xff08;SBOM&#xff09;来化解供应链安全风险。为了确保…

前端面试常考 | js闭包

文章目录一. 闭包1. 介绍闭包2. 闭包的作用3. 闭包与变量二. 闭包引起的内存泄漏1. 闭包是如何引起内存泄漏的2. 如何解决闭包引起的内存泄漏三. 最后一. 闭包 1. 介绍闭包 有不少开发人员总是搞不清楚匿名函数与闭包两个概念&#xff0c;因此经常混用。同时闭包也是我们前端…

我见过最好的天线基础知识

天线作为无线电的发射和接收设备是影响信号强度和质量的重要设备,其在移动通信领域的重要性非常关键。通过对天线选型,天 线安装,天线调整从而保障基站覆盖区域的信号强度与质量。对其的 掌握程度是网规与网优工程师的技能基本要求之一。下文重点说明天线要掌握哪些方面及其原理…

版本控制 | 如何将 UnrealGameSync 与 Perforce Helix Core 结合使用

为了帮助虚幻引擎4和虚幻引擎5的开发&#xff0c;Epic公司开发了UnrealGameSync&#xff0c;使其与版本控制工具Perforce Helix Core交互。虽然UnrealGameSync除了P4V (Helix Core客户端)之外还有许多功能&#xff0c;但主要用途是分发内部引擎和项目构建&#xff0c;它极大地简…

springboot+vue

一、案例结构 用springboot做后端接口&#xff0c;采用restful风格。用vue-cli来创建前端项目&#xff0c;通过axios进行前后端交互。来实现用户的增删改查操作。二、效果图 点击修改&#xff1a; 点击添加&#xff1a; 三、服务器端 控制层代码&#xff1a; package com.ex…

【Tryhackme】dogcat(LFI+文件解析漏洞,Docker逃逸)

免责声明 本文渗透的主机经过合法授权。本文使用的工具和方法仅限学习交流使用&#xff0c;请不要将文中使用的工具和渗透思路用于任何非法用途&#xff0c;对此产生的一切后果&#xff0c;本人不承担任何责任&#xff0c;也不对造成的任何误用或损害负责。 服务发现 ┌──(r…

CentOS7.4安装教程

CentOS7.4安装教程&#xff1a; centos系统自行网上查找链接下载&#xff0c;我使用的是最小安装版本&#xff0c;搞服务器用 1、进入操作系统&#xff0c;选择第一项进行安装&#xff1a; 2、耐心等待&#xff0c;直到弹出这个界面&#xff1a; 3、下拉选择中文&#xf…

磷脂-荧光素标记DSPE-FITC磷脂改性荧光素

磷脂-荧光素标记DSPE-FITC磷脂改性荧光素 中文名称&#xff1a;荧光素标记二硬脂酰磷脂酰乙醇胺 中文别称&#xff1a;磷脂-荧光素标记&#xff1b;二硬脂酰磷脂酰乙醇胺改性荧光素 英文名称&#xff1a;18:0 PE Fluorescein 英文别称&#xff1a;DSPE-FITC 外观&#xff1a…

开发人员的绝佳生产力工具

介绍 从长远来看&#xff0c;每天工作 8 小时对您没有帮助&#xff0c;但利用这些来最大化产出肯定会让您受益。这就是为什么生产力是最重要的事情之一。 今天&#xff0c;我们将学习一些很棒的工具&#xff0c;它们可以提高您的工作效率。除非并且直到您将这些工具集成到您的…

【Lilishop商城】No3-7.模块详细设计,订单模块-1(购物车、收银台)的详细设计

仅涉及后端&#xff0c;全部目录看顶部专栏&#xff0c;代码、文档、接口路径在&#xff1a; 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑&#xff0c;其中重点包括接口类、业务类&#xff0c;具体的结合源代…

【TECH SCIENCE PRESS出版社】2区SCI,仅3个月左右录用,数字孪生、绿色技术、供应链、人工智能物联网、智能传感器相关领域均可

【出版社】TECH SCIENCE PRESS 【期刊简介】IF&#xff1a;3.5-4.0&#xff0c;JCR2区&#xff0c;中科院3区 【检索情况】SCI&EI双检&#xff0c;正刊 【参考周期】3个月左右 【征稿领域】 ①数字孪生在智能医疗系统中的应用&#xff08;2023.3.25截稿&#xff09; …

NetInside助力IT提高业务性能管理能力(一)

需求简介 某外高桥公司的OA系统是其重要的业务系统&#xff0c;OA系统负责人表示&#xff0c;部分用户反馈&#xff0c;访问OA系统时比较慢。需要通过分析系统看一下实际情况。 信息部已对企业领导定义了独立的组&#xff0c;本次要主动分析领导们的使用体验快慢。如果OA系统…

一个带详细程序和注释的实例,手把手带你学会用BP神经网络做预测

目录 1.问题描述 1.1问题剖析 2.实现程序 2.1运行结果 2.3总结 3.预测 3.1输出结果 4.预测理解 1.问题描述 某运输系统连续9年货运量的有关数据如表2-10所示。根据对关于货运量影响因素的分析&#xff0c;这里分别取国内生产总值GDP、工业总产值、铁路运输线路长度、复线…

使用vue-easytable实现仿excel表格,支持可编辑、添加删除行、虚拟表格等功能

使用npm安装vue-easytable npm install --save vue-easytable 在 main.js 中写入以下内容&#xff1a; // 引入样式 import "vue-easytable/libs/theme-default/index.css"; // 引入组件库 import VueEasytable from "vue-easytable"; Vue.use(VueEasyt…

ADI Blackfin DSP处理器-BF533的开发详解49:图像处理专题-Bright (图像亮暗处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像亮暗处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…