SpringBoot或SpringCloud集成Nacos

news2024/9/20 8:09:14

一、创建一个项目

首先创建一个空项目,然后引入Nacos的依赖,并选择正确的SpringBoot和Nacos版本,如果版本选择不对的话可能会启动失败,带来很大的问题

    <!--SpringBoot的版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <!--Nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2021.1</version>
        </dependency>
        <!--Nacos 注册中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2021.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

在整合Nacos过程中需要根据 SpringBoot 版本来选择 注册中心和配置中心的依赖版本,在这里我选择的是如下的这个版本。

如果需要选择其他版本请看版本说明-->版本说明。

二、使用注册中心

1、首先增加注册中心的依赖配置,在application.yml配置文件中加入以下配置

server:
  port: 8089
spring:
  application:
         #需要标识应用的名称
    name: nacosProject
  cloud:
    nacos:
      discovery:
         #Nacos 注册中心的地址
        server-addr: 127.0.0.1:8848
        #注册到不同的命名空间 加上命名空间ID 如果默认为public 则namespace则不用配置
        namespace: f1546389-b623-4424-aff0-b8a392219afb

2、在启动类中加入注解 @EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProjectApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosProjectApplication.class, args);
    }

3、 启动服务器

  • 注:Nacos的运行需要以至少2C4g60g*3的机器配置下运行。

  • Linux/Unix/Mac Nacos启动命令

启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

  • Linux/Unix/Mac Nacos关闭命令

sh shutdown.sh

Windows Nacos启动命令

启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

Windows Nacos关闭命令

shutdown.cmd 或者双击shutdown.cmd运行文件。

配置完上面的基本没什么问题,启动服务后就可以在nacos注册中心内看到注册的服务了。这里只是单纯的记录了整合nacos,如果有其他需要请自行添加。

三、使用注册中心出错问题解决

  1. 问题:

如果配置好了注册中心,在启动过程中出现下面的问题,多半是由于版本导致的问题

解决办法:根据版本说明,选择正确的版本依赖

四、使用配置中心

1、 添加配置中心的配置文件

server:
  port: 8089
spring:
  profiles:
    active: dev
    #需要定义应用名称
  application:
    name: nacosProject
  cloud:
    nacos:
      #配置nacos配置中心
      discovery:
        #Nacos 注册中心的地址
        server-addr: 111.11.103.215:8848
        #注册到不同的命名空间 加上命名空间ID 如果默认为public 则namespace则不用配置
        namespace: e1eee36e-4fcf-47e2-856b-1d49a1bce3d9
      #配置nacos配置中心
      config:
        server-addr: 111.11.103.215:8848 #配置中心的地址
        file-extension: yml #后缀名
        group: DEFAULT_GROUP      #分组
        namespace: e1eee36e-4fcf-47e2-856b-1d49a1bce3d9 #命名空间的id

2、 创建一个application.yml文件 自定义本地的值,跟nacos做区分

ruoyi:
  # 名称
  name: 本地1
  # 版本
  version: 3.3.3

3、 创建一个测试类

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
 * @ Description:
 * @PACKAGE_NAME: com.nacos.nacosproject.controller
 * @date 2023-01-31 11:19
 */
@RefreshScope
@RestController  //自动刷新注解
@RequestMapping("/order")
public class OrderController {

    @Value("${ruoyi.name}")
    private  String name;
    @Value("${ruoyi.version}")
    private String version;

    @RequestMapping("/getOrder")
    public Map<Object,Object> tesController(){
        Map<Object,Object> map = new HashMap<>();
        map.put("name",name);
        map.put("age",version);
        return map;
    }
}

4、 在IDEA 中添加环境变量

spring.cloud.bootstrap.enabled=true

5、 然后测试接口看是否能获取到nacos配置文件上的值

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

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

相关文章

详解axios(快速入门)

axios这一篇就够啦~axios1、axios的理解和使用1.1 axios概述1.2 axios特点1.3 axios常用语法1.4 难点语法的理解和使用2、axios源码分析2.1 源码目录结构2.2 源码分析axios 1、axios的理解和使用 1.1 axios概述 前端最流行的ajax请求库 react/vue官方都推荐使用axios 发ajax…

推荐系统与深度学习关联

6.1 推荐系统与深度学习关联 学习目标 目标 无应用 无 6.1.1 深度学习到推荐系统 深度学习发展成功与局限 最近几年深度学习的流行&#xff0c;大家一般认为是从2012年 AlexNet 在图像识别领域的成功作为一个里程碑。AlexNet 提升了整个业界对机器学习的接受程度&#xff1…

如果把小程序业务和研发管理都放到一个平台

伴随着互联网在中国进程的发展&#xff0c;线上研发效能及业务应用软件也不落后于时代进步的脚步&#xff0c;中国软件行业从未停止过持续的创新。 2022年&#xff0c;业务应用开发正在简化&#xff0c;研发效能也在提升&#xff0c;其中不得不提软件在协同促进、研发一体化管…

MyBatis 一级二级缓存【学习记录】

一级缓存 1&#xff09;首先做个测试&#xff0c;创建一个mapper配置文件和mapper接口&#xff0c;我这里用了最简单的查询来演示。 <mapper namespace"cn.elinzhou.mybatisTest.mapper.UserMapper"><select id"findUsers" resultType"cn.…

Linux关于执行文件路径的变量:$PATH

目录 前言 环境变量PATH 问题思考 总结 前言 Linux目录的配置都是依据FHS&#xff0c;FHS的标准文件指出&#xff0c;它们的主要目的是希望让用户可以了解到已安装软件通常放置于哪个目录下。也就是说&#xff0c;FHS的重点在于规范每个特定的目录下应该要放置什么样子的数…

Docker搭建私有仓库

搭建私有仓库 参考地址&#xff1a;搭建私有仓库 安装运行 docker-registry 查看docker存储路径与对应路径下的大小 docker info | grep Dir查看对应路径下的大小 du -sh /var/lib/docker如果大小没有问题的话就可以直接安装了 拉取registry镜像并运行 docker run -d \-…

数据库常用语句练习总结

show databases; 显示数据库 use student; 使用该数据库 3.show full columns from student; 展示数据库所有的字段 show columns from student; 展示数据库添加的字段 alter table student change column Sname Snames char(200); 添加 student表中的字段 alter tabl…

手写智能识别:SmartZoneOCR/SmartZoneICR Crack

Accusoft.SmartZoneOCR/Accusoft.SmartZoneICR 智能区 OCR/ICR 在您的应用程序中使用自动区域数据捕获技术消除手动数据输入。 概述 使用我们强大的 ICR 和 OCR SDK 改进字符识别。 SmartZone 先进的区域字符识别技术允许您从文档图像中的指定字段捕获打字 (OCR) 或手写 (ICR)…

24种设计模式之单例模式(饿汉式、懒汉式)

一、单例模式单例模式( Singleton Pattern &#xff09;是指确保一个类在任何情况下都绝对只有一个实例&#xff0c;并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛&#xff0c;例如,总统&#xff0c;班主任等。J2EE标准中的ServletContext …

反对称矩阵乘任意矩阵满足交换性?

看论文的时候有疑惑 R˙R[ω]\dot{\mathbf{R}}\mathbf{R}[\omega]_{\times}R˙R[ω]​ R˙[ω]R\dot{\mathbf{R}}[\omega]_{\times}\mathbf{R}R˙[ω]​R 难道反对称矩阵乘任意矩阵满足交换性&#xff1f; 在maple里面验证一下吧&#xff1a; 很明显是不一样的&#xff0c;一…

字节二面:100Wqps短链系统,如何设计?

前段时间&#xff0c;社群小伙伴&#xff0c;在交流一个字节的二面真题&#xff1a; 100Wqps短链系统&#xff0c;怎么设计&#xff1f; 这道题&#xff0c;看上去业务简单&#xff0c;其实&#xff0c;覆盖的知识点非常多&#xff1a; 高并发、高性能分布式 IDRedis Bloom …

考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Qt】2.Qt坐标系、信号和槽、Lambda表达式

目录 Qt坐标系 信号和槽 需求 优点 自定义信号 自定义槽函数 触发自定义信号 代码 main.cpp widget.h widget.cpp teachar.h teachar.cpp student.h student.cpp 结果 重载 解决方法 信号和槽拓展 断开信号和槽 触发多个槽函数 Lambda表达式 [] () {}…

【数据结构与算法】DP路径问题

问题&#xff1a;最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,…

二叉树28:二叉搜索树的最近公共祖先

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;235. 二叉搜索树的最近公共祖先 题目&#xff1a; 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。…

对于Go 语言的进阶与依赖管理| 青训营笔记

一.Go 语言进阶与依赖管理 1.1并发和并行 Go可以充分发挥多核优势&#xff0c;高效运行。 多线程程序在单核心的 cpu 上运行&#xff0c;称为并发&#xff1b; 多线程程序在多核心的 cpu 上运行&#xff0c;称为并行。 并发与并行并不相同&#xff0c;并发主要由切换时间片…

2016年专业408算法题

文章目录0 结果1 题目2 思路2.1 思路1&#xff08;较优解&#xff1a;排序&#xff09;2.2 思路2&#xff08;最优解&#xff1a;类快排思想排序&#xff09;附录0 结果 较优解&#xff1a; 最优解&#xff1a; 1 题目 2 思路 为了使&#xff5c;n1−n2&#xff5c;&#…

1.2.3存储结构:主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量

1.2.3存储结构&#xff1a;主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量主存编址的过程存储单元主存编址存储单元编址内容存储总容量例题主存编址的过程 计算机是一个机器&#xff0c;它能够识别的是机器语言&#xff0c;电器信号。因此计算机当中所有的数据…

英语学习 2

1 词汇积累 1、imply and infer 暗示和推断 2、indicate 显示、指出 3、outgoing 外向的 4、sympathy 同情心 5、sympathetic 有同情心的 6、evolution 进化 8、agreement 一致 10、resourceful 足智多谋的 11、appear 似乎 12、manufacturers 厂家、制造商 13、toilet paper …

linux定时器crond使用方式简介

文章目录一、简介二、cron.d下文件示例三、被调用的脚本文件四、检查脚本是否执行五、遇到的脚本未执行的情况一、简介 一般来说在/etc目录下&#xff0c;有5个以cron开头的目录&#xff0c;分别是/etc/cron.hourly&#xff0c;/etc/cron.daily&#xff0c;/etc/cron.weekly&a…