nacos(docker部署)+springboot集成

embedded/2024/10/18 16:41:25/

文章目录

  • 说明
  • nacos容器部署
    • 初始化配置
    • 高级配置部分
    • 访问
    • 权限控制
    • 命名空间设置
    • 新建配置文件
  • springboot配置nacos
    • 添加依赖
    • 编写测试controller

说明

  1. nacos容器部署采用1Panel运维面板,进行部署操作,简化操作
  2. 注意提前安装好1Panel和配置完成docker镜像加速(可以在1Panel运维面板 容器面板中配置官方推荐的加速配置)

  1. 防火墙配置,请开放8848和9848,如果nacos部署时使用了不同的外部端口,请开放相应端口
  2. 推荐在1panel防火墙管理中进行操作和配置
    • 如果服务器没有防火墙配置,可以选择直接进入nacos容器部署步骤操作
      在这里插入图片描述
    • 如果存在防火墙,请开放8848和9848端口
      在这里插入图片描述

nacos_12">nacos容器部署

  1. 打开1panel运维面板并登录,选择应用商店点击更多,选择中间件,即可看到nacos服务应用
    在这里插入图片描述

初始化配置

  1. 点击安装,配置容器的初始化配置,下面详细重要讲解配置项的含义和作用
    • 名称:保持默认即可
    • 版本:目前docker版本为2.3.2,可以根据自己需求进行选择
    • 开启鉴权:可以选择开启和关闭,默认未关闭状态,如果开启在使用springboot连接nacos时,需要填写username和password
    • Nacos运行端口:配置nacos docker服务应用应用的外部端口,默认未8848和容器内部的端口一致。可以自定义修改,但是要注意开放防火墙端口,如果使用云服务,请在安全组中开放自定义的外部映射运行端口。
    • Nacos身份验证密钥键:相当于username,在开启鉴权后,用于用户权限鉴别
    • Nacos身份验证密钥值:相当于password,在开启鉴权后,用于用户权限鉴别
    • Nacos身份验证令牌:nacos.token.secret.key的值,使用base64(https://base64.us/)编码后的内容,建议字符长度32位以上。注意保存,后面项目中配置需要
    • 多网卡模式下可以指定IP:可以留空,非必须配置
    • 有关JVM相关的参数可以保持默认,最优化的配置,请结合自身服务器配置和项目需求进行配置
      在这里插入图片描述

高级配置部分

  • 容器名称:建议自定义一个醒目的名称,特别是在服务器上部署的容器比较多的情况下
  • 外部端口访问:请务必勾选
    在这里插入图片描述
  • 编辑compose文件:勾选后弹出展示具体的compose文件的配置内容,可以首选修改添加- ./data/conf:/home/nacos/conf,最终的配置如下
services:nacos:image: nacos/nacos-server:v2.3.2container_name: ${CONTAINER_NAME}-standalonerestart: alwaysenvironment:- NACOS_AUTH_ENABLE=${NACOS_AUTH_ENABLE:-FALSE}- PREFER_HOST_MODE=hostname- MODE=standalone- JVM_XMS=${JVM_XMS}- JVM_XMX=${JVM_XMX}- JVM_XMN=${JVM_XMN}- JVM_MS=${JVM_MS}- JVM_MMS=${JVM_MMS}- NACOS_AUTH_IDENTITY_KEY=${NACOS_AUTH_IDENTITY_KEY}- NACOS_AUTH_IDENTITY_VALUE=${NACOS_AUTH_IDENTITY_VALUE}- NACOS_AUTH_TOKEN=${NACOS_AUTH_TOKEN}- NACOS_SERVER_IP=${NACOS_SERVER_IP}volumes:- ./data/logs:/home/nacos/logs- ./data/data:/home/nacos/data- ./data/conf:/home/nacos/confports:- "${PANEL_APP_PORT_HTTP}:8848"- "${PANEL_APP_PORT_COMMUNICATION}:9848"
networks:1panel-network:external: true
  • 最后,点击右下角确认按钮,进行容器的部署

访问

  1. 访问http://IP:8848/nacos/,即可访问nacos页面,如果开启鉴权,会提示权限认证失败
    在这里插入图片描述
  2. 点击确定,使用部署时配置的用户名和密码,登录nacos即可
  3. 初次登录nacos,使用默认的明亮主题,喜欢黑色主题的朋友,可以现在设置中心,设置黑色主题,同时还可以修改系统语言
    在这里插入图片描述

权限控制

  1. 在权限模块中可以修改用户和角色权限等相关的设置,后续springboot项目可以使用新增的用户连接nacos,但注意需要分配好需要的权限
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

命名空间设置

  • namespace来实现环境隔离功能(如生产环境、开发环境、测试环境的隔离)
  • 更详细的内容参看《注册中心Eureka&Nacnos》
  • 这里作者创建一个名为train的命名空间,用户一会儿的测试
    在这里插入图片描述

新建配置文件

  1. 在配置管理的命名空间train下创建member-dev.yaml的配置文件,内容如下
    在这里插入图片描述

nacos_82">springboot配置nacos

添加依赖

  1. 导入和nacos版本兼容的maven依赖,具体的方法时打开alibaba nacos配置案例地址,这使用nacos2.3.2演示地址即可看到springboot项目需要的内容,将其复制进项目的pom文件

    <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    

    在这里插入图片描述

  2. 添加nacos maven依赖和读取bootstrap文件的配置

<!-- 读取bootstrap文件 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency><!-- 配置中心 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency><!-- 注册中心 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  1. 在项目resources目录下,创建bootstrap.yml文件,内容如下
    # 注册中心名称
    spring:application:name: xxx #比如 member 和配置文件member-dev.yml前缀对应
    # 启动环境 nacos会根据环境读不同的配置dataIprofiles:active: xxx #比如 dev 注意与前面中nacos创建的配置文件中后缀匹配如文件名称为member-dev.ymlcloud:nacos:config:namespace: xxx #比如 train 和nacos中配置的命名空间对应 server-addr: ip:8848file-extension: yaml #也可以采用properties文件格式secret-key: xxxxx # SecretKey:服务部署时的 Nacos身份验证令牌username: xxx # nacos开启鉴权,需要配置 就是前面的Nacos身份验证密钥键 否则,无需配置password: xxx # nacos开启鉴权,需要配置 就是前面的Nacos身份验证密钥值 否则,无需配置discovery:namespace: trainserver-addr: ip:8848username: xxx # nacos开启鉴权,需要配置 就是前面的Nacos身份验证密钥键 否则,无需配置password: xxx # nacos开启鉴权,需要配置 就是前面的Nacos身份验证密钥键 否则,无需配置
    

编写测试controller

  1. 创建测试controller
    import jakarta.annotation.Resource;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.core.env.Environment;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;@RestController
    @RefreshScope
    public class TestController {@Value("${nacos.test}")private String testNacos;@ResourceEnvironment environment;@GetMapping("/hello")public String hello() {String port = environment.getProperty("local.server.port");return String.format("Hello %s! 端口:%s", testNacos, port);}
    }
    
  2. 最后访问controller接口ip:/hello即可,验证是否成功

  • 一般,成功后可以在nacos看到注册的服务,这里作者就不再复现最终的结果了!详细认真实践和总结,尽管中间会遇到其他的问题,最后一定会成功!

http://www.ppmy.cn/embedded/26444.html

相关文章

为什么 Facebook 不使用 Git?

在编程的世界里&#xff0c;Git 就像水一样常见&#xff0c;以至于我们认为它是创建和管理代码更改的唯一可行的工具。 前 Facebook 员工&#xff0c;2024 年 首先&#xff0c;我为什么关心&#xff1f; 我致力于构建 Graphite&#xff0c;它从根本上受到 Facebook 内部工具的…

头歌:Spark Streaming

第1关&#xff1a;套接字流实现黑名单过滤 简介 套接字流是通过监听Socket端口接收的数据&#xff0c;相当于Socket之间的通信&#xff0c;任何用户在用Socket&#xff08;套接字&#xff09;通信之前&#xff0c;首先要先申请一个Socket号&#xff0c;Socket号相当于该用户…

等保测评:网络安全合规的基石

在数字化时代&#xff0c;网络安全已成为国家安全战略的重要组成部分。信息安全等级保护测评&#xff08;等保测评&#xff09;作为网络安全合规的核心&#xff0c;对于维护网络空间的安全稳定、保护企业和个人的信息资产具有不可替代的作用。 ## 一、等保测评的法律地位 等保…

【补充】图神经网络前传——图论

本文作为对图神经网络的补充。主要内容是看书。 仅包含Introduction to Graph Theory前五章以及其他相关书籍的相关内容&#xff08;如果后续在实践中发现前五章不够&#xff0c;会补上剩余内容&#xff09; 引入 什么是图&#xff1f; 如上图所示的路线图和电路图都可以使用…

【linuxC语言】fcntl和ioctl函数

文章目录 前言一、功能介绍二、具体使用2.1 fcntl函数2.2 ioctl函数 三、拓展&#xff1a;填写arg总结 前言 在Linux系统编程中&#xff0c;经常会涉及到对文件描述符、套接字以及设备的控制操作。fcntl和ioctl函数就是用来进行这些控制操作的两个重要的系统调用。它们提供了对…

【vite】执行npm create vue@latest卡死

目录标题 现场呈现解决方法 现场呈现 如图所示&#xff0c;执行上面命令之后一直卡这里不动了。 解决方法 查看镜像 npm config get registry切换镜像 npm config set registryhttps://registry.npmmirror.com

MongoDB聚合运算符:$strLenBytes

MongoDB聚合运算符&#xff1a;$strLenBytes 文章目录 MongoDB聚合运算符&#xff1a;$strLenBytes语法使用举例单字节和多字节字符集 $strLenBytes聚合运算符返回指定字符串中 UTF-8 编码的字节数。 语法 { $strLenBytes: <string expression> }<expression>为可…

四:物联网ARM开发

软件安装 keil5软件的安装包&#xff08;软件开发&#xff09;-> Keil.STM32F0XX_DFP.1.4.0.pack &#xff08;这是STM32F0设备安装包&#xff09;-> KEIL_Lic(破解keil的安装包) -> 安装 ST_LINK 烧写工具 -> 安装Java运行环境 -> 选择STM32CubeMX(微控制器图…