nacos(docker部署)+springboot集成

文章目录

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

说明

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

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

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的配置文件,内容如下
    在这里插入图片描述

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文件格式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.rhkb.cn/news/319937.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

避雷!7.7分,新增1区TOP被标记On Hold,5本已被踢除!

本周投稿推荐 SSCI • 2/4区经管类&#xff0c;2.5-3.0&#xff08;录用率99%&#xff09; SCIE&#xff08;CCF推荐&#xff09; • 计算机类&#xff0c;2.0-3.0&#xff08;最快18天录用&#xff09; SCIE&#xff08;CCF-C类&#xff09; • IEEE旗下&#xff0c;1/2…

每天五分钟深度学习:数学中常见函数中的导数

本文重点 导数是微积分学中的一个核心概念,它描述了函数在某一点附近的变化率。在物理学、工程学、经济学等众多领域中,导数都发挥着极其重要的作用。本文旨在详细介绍数学中常见函数的导数,以期为读者提供一个全面而深入的理解。 数学中常见的导数 常数函数的导数 对于常数…

Golang | Leetcode Golang题解之第69题x的平方根

题目&#xff1a; 题解&#xff1a; func mySqrt(x int) int {if x 0 {return 0}C, x0 : float64(x), float64(x)for {xi : 0.5 * (x0 C/x0)if math.Abs(x0 - xi) < 1e-7 {break}x0 xi}return int(x0) }

如何构建用于从收据中提取信息的生成式人工智能工具

原文地址&#xff1a;how-to-build-a-generative-ai-tool-for-information-extraction-from-receipts 使用 LangChain 和 OpenAI 工具从 Google Drive 中存储的收据图像中提取结构化信息 2024 年 4 月 10 日 纸质收据有各种样式和格式&#xff0c;是自动信息提取的一个有趣目…

Spring拦截器

一、简介&#xff1a; Spring Boot 拦截器是面向切面编程-----AOP 的具体实现&#xff0c;用于对请求做预处理。 1.1.什么是拦截器&#xff1a;在AOP&#xff08;Aspect-Oriented Programming&#xff09;中用于在某个方法或字段被访问之前&#xff0c;进行拦截然后在之前或之…

FSNotes for Mac v6.7.1中文激活:轻量级笔记管理工具

FSNotes for Mac&#xff0c;一款专为Mac用户打造的轻量级笔记管理工具&#xff0c;让您的笔记管理变得简单而高效。 FSNotes for Mac v6.7.1中文激活版下载 它采用Markdown文件格式&#xff0c;让您轻松创建和编辑富文本笔记&#xff0c;无需担心格式问题。同时&#xff0c;FS…

USB-HUB带宽共享机制

一. USB2.0-HUB工作机理 1. USB2.0 HUB的结构 USB2.0支持低速&#xff08;1.5Mbps&#xff09;、全速&#xff08;12Mbps&#xff09;以及高速&#xff08;480Mbps&#xff09;三种外部设备。为了将全速/低速设备对高速设备可用带宽的影响降到最小&#xff0c;USB2.0提供了一…

基于openEuler22.03 LTS环境的docker容器基础

一、说明 本文配置环境为VMware虚拟机或华为云服务器&#xff08;4核CPU&#xff0c;8 GB内存&#xff0c;40GB磁盘&#xff09;&#xff0c;OS为openEuler 22.03 LTS &#xff0c;Linux服务器要求能联网。 二、安装docker 2.1 安装docker软件包 [rootnode01 ~]# dnf -y in…

C#图像:1.图像区域分割与提取

&#xff08;1&#xff09;创建一个名为SplitImage的窗体的应用程序&#xff0c;将窗体改名为FormSplitImage。 &#xff08;2&#xff09;创建一个名为ImageProcessingLibrary的类库程序&#xff0c;为该工程添加名为ImageProcessing的静态类 &#xff08;3&#xff09;为Imag…

数字文旅重塑旅游发展新生态:以数字化转型为契机,推动旅游产业的创新发展,提升旅游服务的智能化、网络化和个性化水平

目录 一、引言 二、数字化转型推动旅游产业创新发展 1、数字化转型提升旅游产业效率 2、数字化转型拓展旅游产业边界 3、数字化转型促进旅游产业可持续发展 三、提升旅游服务智能化、网络化和个性化水平 1、智能化提升旅游服务体验 2、网络化拓宽旅游服务渠道 3、个性…

Stable Diffusion AI绘画

我们今天来了解一下最近很火的SD模型 ✨在人工智能领域&#xff0c;生成模型一直是研究的热点之一。随着深度学习技术的飞速发展&#xff0c;一种名为Stable Diffusion的新型生成模型引起了广泛关注。Stable Diffusion是一种基于概率的生成模型&#xff0c;它可以学习数据的潜…

【GDAL应用】基于rasterstats的矢量数据分区统计栅格值信息

文章目录 1 实现效果2 实现功能3 实现代码 1 实现效果 矢量数据&#xff1a; 栅格数据&#xff1a;只有一个value值&#xff08;像素值或DN值&#xff09;&#xff0c;为1&#xff0c;计算统计时nodata作为0值处理。 输出结果&#xff1a; 2 实现功能 基于单波段的栅格数…

探索设计模式的魅力:分布式模式让业务更高效、更安全、更稳定

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 ✨欢迎加入探索分布式模式之旅✨ 在数字化时代&#xff0c;企业面临着前所未有的挑战和机遇。…

面试中算法(使用栈实现队列)

使用栈来模拟一个队列&#xff0c;要求实现队列的两个基本操作:入队、出队。 栈的特点&#xff1a;先入后出&#xff0c;出入元素都是在同一端&#xff08;栈顶&#xff09;。 队列的特点&#xff1a;先入先出&#xff0c;出入元素是在两端&#xff08;队头和队尾)。 分析&…

yolov8 区域声光报警+计数

yolov8 区域报警计数 1. 基础2. 报警功能2. 1声音报警代码2. 2画面显示报警代码 3. 完整代码4. 源码 1. 基础 本项目是在 yolov8 区域多类别计数 的基础上实现的&#xff0c;具体区域计数原理可见上边文章 2. 报警功能 设置一个区域region_points&#xff0c;当行人这一类别…

Microsoft Remote Desktop Beta for Mac:远程办公桌面连接工具

Microsoft Remote Desktop Beta for Mac不仅是一款远程桌面连接工具&#xff0c;更是开启远程办公新篇章的利器。 它让Mac用户能够轻松访问和操作远程Windows计算机&#xff0c;实现跨平台办公的无缝衔接。无论是在家中、咖啡店还是旅途中&#xff0c;只要有网络连接&#xff0…

【hive】transform脚本

文档地址&#xff1a;https://cwiki.apache.org/confluence/display/Hive/LanguageManualTransform 一、介绍二、实现1.脚本上传到本地2.脚本上传到hdfs 三、几个需要注意的点1.脚本名不要写全路径2.using后面语句中&#xff0c;带不带"python"的问题3.py脚本Shebang…

ASP.NET淘宝店主交易管理系统的设计与实现

摘 要 淘宝店主交易管理系统主要采用了ASPACCESS的B/S设计模式&#xff0c;通过网络之间的数据交换来实现客户、商品、交易的管理和对客户、商品、交易统计工作&#xff0c;从而提高淘宝店主在管理网店过程中的工作效率和质量。 系统分为基本资料模块&#xff0c;统计资料模…

【MySQL】第一次作业

【MySQL】第一次作业 1、在官网下载安装包2、解压安装包&#xff0c;创建一个dev_soft文件夹&#xff0c;解压到里面。3、创建一个数据库db_classes4、创建一行表db_hero5、将四大名著中的常见人物插入这个英雄表 写一篇博客&#xff0c;在window系统安装MySQL将本机的MySQL一定…

安装库后JupyterLab一直报ModuleNotFoundError问题解决

背景&#xff1a; 先安装的Python3.10&#xff0c;安装在默认路径&#xff1a; C:\Users\#用户名省略#\AppData\Local\Programs\Python\Python310\ 后安装的Anaconda&#xff0c;更改过路径在D盘&#xff1a; D:\ProgramData\anaconda3 此时C盘Python安装路径下Scripts文件…