Java17 --- SpringCloud之Nacos

目录

一、下载nacos并运行

1.1、创建9001微服务作为提供者 

1.2、创建80微服务作为消费者 

二、naocs配置中心规则与动态刷新

2.1、创建3377微服务

2.2、在nacos中创建配置文件 

三、nacos数据模型之Namespace-Group-Datald

3.1、DatalD方案 

 3.2、Group方案

 3.3、Namespace方案


一、下载nacos并运行

下载官网:Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos

运行并测试访问:startup.cmd -m standalone

 

 

1.1、创建9001微服务作为提供者 

导入相关pom依赖并创建配置yml文件 

<dependencies>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--loadbalancer-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

测试代码:

@SpringBootApplication
@EnableDiscoveryClient
public class Main9001 {
    public static void main(String[] args) {
        SpringApplication.run(Main9001.class,args);
    }
}
@RestController
public class PayAlibabaController {
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/pay/nacos/{id}")
    public String getPayInfo(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}

 

1.2、创建80微服务作为消费者 

导入相关pom依赖并创建配置yml文件  

<dependencies>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--loadbalancer-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
server:
  port: 80

spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
#消费者将要去访问的微服务名称(nacos微服务提供者叫什么你写什么)
service-url:
  nacos-user-service: http://nacos-payment-provider

测试代码:

@SpringBootApplication
@EnableDiscoveryClient
public class Main80 {
    public static void main(String[] args) {
        SpringApplication.run(Main80.class,args);
    }
}
@Configuration
public class RestTemplateConfig {
    @Bean
    @LoadBalanced //赋予RestTemplate负载均衡的能力
    public RestTemplate restTemplate()
    {
        return new RestTemplate();
    }
}
@RestController
public class OrderNacosController {
    @Resource
    private RestTemplate restTemplate;

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping("/consumer/pay/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Integer id)
    {
        String result = restTemplate.getForObject(serverURL + "/pay/nacos/" + id, String.class);
        return result+"\t"+"    我是OrderNacosController80调用者。。。。。。";
    }
}

二、naocs配置中心规则与动态刷新

2.1、创建3377微服务

    <dependencies>
        <!--bootstrap-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

创建配置文件bootstrap.yml

# nacos配置
spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置

# nacos端配置文件DataId的命名规则是:
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 本案例的DataID是:nacos-config-client-dev.yaml

 创建配置文件application.yml

server:
  port: 3377

spring:
  profiles:
    active: dev # 表示开发环境
      #active: prod # 表示生产环境
    #active: test # 表示测试环境

 测试代码:

@SpringBootApplication
@EnableDiscoveryClient
public class Main3377 {
    public static void main(String[] args) {
        SpringApplication.run(Main3377.class,args);
    }
}
@RestController
@RefreshScope //动态刷新
public class NacosConfigClientController {
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}

2.2、在nacos中创建配置文件 

 

测试读取测试文件内容

 

三、nacos数据模型之Namespace-Group-Datald

3.1、DatalD方案 

只需要创建不同 Data id配置即可

 

修改application.yml配置文件 

 3.2、Group方案

 

修改bootstrap.yml文件  

 3.3、Namespace方案

 创建自己的命名空间

选择自己创建的命名空间进行创建配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vite构造Vue3

环境安装 node.js安装-CSDN博客 初始化Vue项目安装脚手架_vue init webpack安装脚手架-CSDN博客 选择Vue框架 &#xff0c;项目名称可以自定义&#xff0c;我使用默认的 vite-project 选择JS 进入项目安装依赖

Windows平台通过MobaXterm远程登录安装在VMware上的Linux系统(CentOS)

MobaXterm是一个功能强大的远程计算工具&#xff0c;它提供了一个综合的远程终端和图形化的X11服务器。MobaXterm旨在简化远程计算任务&#xff0c;提供了许多有用的功能&#xff0c;使远程访问和管理远程服务器变得更加方便&#xff0c;它提供了一个强大的终端模拟器&#xff…

视频号小店在行业内的门槛高不高?有门槛是好事还是坏事?

大家好&#xff0c;我是电商小V 现在伴随着时代的慢慢发展&#xff0c;很多人都是想找一个好一点的创业项目&#xff0c;现在找创业项目都是找一些稍微有门槛的项目&#xff0c;没有门槛的话&#xff0c;要不然刚开始去做&#xff0c;项目就泛滥了&#xff0c;项目的红利期直接…

哪个牌子的电容笔好用?618五款爆款电容笔评测,不踩雷!

随着信息技术不断发展&#xff0c;iPad慢慢成为了现代年轻人工作、娱乐和学业的必备智能工具之一。然而&#xff0c;市场上涌现出众多品牌的电容笔&#xff0c;也存在着大量低质量的电容笔产品。这些产品往往无法达到预期的书写和绘画效果&#xff0c;反而可能导致用户体验不佳…

【kali换源之后签名无效,报错处理】

#一、问题&#xff1a;报错信息# 错误:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease 错误:2 http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling InRelease 错误:3 http://dl.google.com/linux/chrome/deb stable InRelease 错误:4 http://mirrors.aliyu…

PyQt5中重要的概念:信号与槽

PyQt中信号与槽概念定义如下&#xff08;网络上引用的&#xff09;&#xff1a; 信号&#xff08;signal&#xff09;和槽&#xff08;slot&#xff09;是Qt的核心机制&#xff0c;也是在PyQt编程中对象之间进行通信的机制。在创建事件循环之后&#xff0c;通过建立信号和槽的…

2024上半年软考机考新政策:科目连考、分批次考试

辽宁省信息技术教育中心发布了《关于2024年上半年计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试批次安排的通知》。 该通知明确了2024上半年软考辽宁考区的考试时间、考试方式、考试批次安排&#xff0c;与2023下半年软考机考形式有多处调整。 1、考试时间&am…

vtk教程:禁止VTK弹出警告窗口warning

在使用VTK&#xff08;Visualization Toolkit&#xff09;进行可视化操作时&#xff0c;有时候会弹出警告窗口&#xff08;warning messages&#xff09;&#xff0c;这些警告可能是由于数据问题或是API使用不当等原因触发的。 如果你希望在使用VTK时禁用这些警告窗口&#xff…

【微信小程序开发】微信小程序注册,配置开发者工具

准备工作 微信小程序小程序开发流程 开发过程注册小程序开发者工具开发界面介绍 微信小程序 一种新的开发能力&#xff0c;可以在微信内被便捷的获取和传播&#xff0c;具有出色的用户体验 地址&#xff1a;https://mp.weixin.qq.com/ 注册微信小程序 在进行开发之前我们应该…

09 华三 SSH

03 华三SSH 远程登录 1 AI解说官网 Kimi.ai - 帮你看更大的世界 (moonshot.cn) 华三交换机的SSH配置主要目的是通过SSH协议实现安全的远程登录和管理&#xff0c;以确保数据传输的安全性。以下是配置SSH的一般步骤和思路&#xff1a; 生成密钥对&#xff1a;首先需要在交换…

【重要】MThings V0.6.3更新要点

我们听到了您的声音并采取了行动&#xff01;现在为您提供了一次全面的软件升级&#xff0c;让您的体验更加顺畅、稳定和安全。立即更新&#xff0c;畅享新功能&#xff01; 下载地址&#xff1a; http://gulink.cn/download 重要通知&#xff1a; 摩尔信使MThings即将发布全新…

从ChatGPT革命性的对话系统,看人机交互模式6个阶段的演变

ChatGPT引领革命&#xff0c;看人机交互六步飞跃 ©作者|wy 来源|神州问学 引言 在科技的浪潮中&#xff0c;人机交互模式不断演进&#xff0c;从最初的简单指令输入到如今的智能对话系统&#xff0c;每一次革新都昭示着人类与机器交流方式的深刻变革。ChatGPT&#xff0…

小吉/希亦/鲸立内衣洗衣机怎么样?深度测评谁更好用!

内衣洗衣机是近几年新兴的家电产品&#xff0c;以清洁效果好、除菌能力强&#xff0c;被很多人种草入手了&#xff01;但网上有不少人虽感兴趣&#xff0c;但不清楚如何选。担心买到质量差&#xff0c;清洗不干净的产品。作为一名家电测评博主&#xff0c;我今天特意围绕被问最…

[AIGC] 事务的四大特性是怎么实现的

文章目录 原子性是通过 undo log实现的。一致性是通过 redo log实现的。隔离性的实现 &#xff08;分事务的隔离级别讨论&#xff09;持久性是利用 redo log 实现的 写入过程 原子性是通过 undo log实现的。 事务的所有 修改操作 (增、删、改)的相反操作都会写入undo log, 比如…

电脑快捷键怎么设置?记好这3个设置方法!

“作为一个职场小白&#xff0c;我对很多快捷键的应用都不是很熟悉&#xff0c;这导致我工作效率总是很低&#xff0c;大家平常在使用电脑时有什么比较好用的电脑快捷键设置方法给我推荐一下吗&#xff1f;” 在数字化时代&#xff0c;电脑已成为我们日常生活和工作的必备工具。…

基于Java.Web框架React、Vue.js技术开发的一套(C#医院体检系统成品源码、支持二开)

医院体检系统是一种专为体检中心/医院体检科等体检机构开发的全流程管理系统。该系统通过软件实现检测仪器数据的自动提取&#xff0c;内置多级医生工作台&#xff0c;细化工作并将体检检查结果汇总&#xff0c;生成体检报告登记到计算机系统中。此外&#xff0c;该系统还能进行…

什么是水经微图网络加密锁?

水经微图&#xff0c;以下简称“微图”。 我们在《什么是水经微图加密锁&#xff1f;》一文中&#xff0c;为你分享了什么是微图加密锁&#xff0c;以及其使用的方法。 现在&#xff0c;我们再为你分享什么是网络加密锁&#xff0c;以及其使用的方法。 什么是网络加密锁&…

微服务---feign调用服务

目录 Feign简介 Feign的作用 Feign的使用步骤 引入依赖 具体业务逻辑 配置日志 在其它服务中使用接口 接着上一篇博客&#xff0c;我们讲过了nacos的基础使用&#xff0c;知道它是注册服务用的&#xff0c;接下来我们我们思考如果一个服务需要调用另一个服务的接口信息&…

RAG进阶(二): RAG 融合(rag fusion)

在上一篇博客中&#xff0c;我们学习了多重查询(Multi Query)技术&#xff0c;Multi Query的基本思想是当用户输入查询语句(自然语言)时&#xff0c;我们让大模型(LLM)基于用户的问题再生成多个查询语句&#xff0c;这些生成的查询语句是对用户查询语句的补充&#xff0c;它们是…

计算机毕业设计 | vue+springboot 在线花店后台管理系统(附源码)

1&#xff0c;绪论 1.1 项目背景 随着社会发展&#xff0c;网上购物已经成为我们日常生活的一部分。但是&#xff0c;至今为止大部分电商平台都是从人们日常生活出发&#xff0c;出售都是一些日常用品比如&#xff1a;食物、服装等等&#xff0c;并未发现一个专注于鲜花的电商…