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.2
    container_name: ${CONTAINER_NAME}-standalone
    restart: always
    environment:
      - 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/conf
    ports:
      - "${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会根据环境读不同的配置dataI
      profiles:
        active: xxx #比如 dev 注意与前面中nacos创建的配置文件中后缀匹配如文件名称为member-dev.yml
      cloud:
        nacos:
          config:
            namespace: xxx #比如 train 和nacos中配置的命名空间对应 
            server-addr: ip:8848
            file-extension: yaml #也可以采用properties文件格式
            secret-key: xxxxx # SecretKey:服务部署时的 Nacos身份验证令牌
            username: xxx # nacos开启鉴权,需要配置 就是前面的Nacos身份验证密钥键 否则,无需配置
            password: xxx # nacos开启鉴权,需要配置 就是前面的Nacos身份验证密钥值 否则,无需配置
          discovery:
            namespace: train
            server-addr: ip:8848
            username: 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;
        @Resource
        Environment 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看到注册的服务,这里作者就不再复现最终的结果了!详细认真实践和总结,尽管中间会遇到其他的问题,最后一定会成功!

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

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

相关文章

深入剖析Tomcat(五) 剖析Servlet容器并实现一个简易Context与Wrapper容器

上一章介绍了Tomcat的默认连接器&#xff0c;后续程序都会使用默认连接器。前面有讲过Catalina容器的两大块内容就是连接器与Servlet容器。不同于第二章的自定义丐版Servlet容器&#xff0c;这一章就来探讨下Catalina中的真正的Servlet容器究竟长啥样。 四种容器 在Catalina中…

Unity涂鸦纹理实现

文章目录 前言实现过程UV坐标和UI坐标对齐修改像素代码 前言 心血来潮实现下场景中提供一张纹理进行涂鸦的功能。 最终实现效果: 实现过程 UV坐标和UI坐标对齐 这里的纹理使用了UGUI的Canvas进行显示&#xff0c;所以这里使用一张RawImage。 因为Unity的视口坐标是以左下角…

【Excel】excel计算相关性系数R、纳什效率系数NSE、Kling-Gupta系数KGE

对于采用的数据&#xff1a; B2:B10958是观测值的所在范围 C2:C10958是模型计算值的所在范围 一、相关系数R是用来衡量两个变量之间线性关系强度和方向的统计量。在水文学和气象学中&#xff0c;常用的相关系数是皮尔逊相关系数&#xff08;Pearson correlation coefficient&am…

Baidu Comate:“AI +”让软件研发更高效更安全

4月27日&#xff0c;百度副总裁陈洋出席由全国工商联主办的第64届德胜门大讲堂&#xff0c;并发表了《深化大模型技术创新与应用落地&#xff0c;护航大模型产业平稳健康发展》主题演讲。陈洋表示&#xff0c;“人工智能”成为催生新质生产力的重要引擎&#xff0c;对于企业而言…

线上线下收银一体化,新零售POS系统引领连锁门店数字化转型-亿发

在市场竞争日益激烈的背景下&#xff0c;没有哪个商家能够永远屹立不倒。随着互联网技术的快速发展&#xff0c;传统的线下门店面临着来自电商和新零售的新型挑战。实体零售和传统电商都需要进行变革&#xff0c;都需要实现线上线下的融合。 传统零售在客户消费之后就与商家失…

网络基础(1)网络编程套接字UDP

要完成网络编程首先要理解原IP和目的IP&#xff0c;这在上一节已经说明了。 也就是一台主机要进行通信必须要具有原IP和目的IP地址。 端口号 首先要知道进行网络通信的目的是要将信息从A主机送到B主机吗&#xff1f; 很显然不仅仅是。 例如唐僧要去到西天取真经&#xff0…

ES集群分布式查询原理

集群分布式查询 elasticsearch的查询分成两个阶段&#xff1a; scatter phase&#xff1a;分散阶段&#xff0c;coordinating node会把请求分发到每一个分片gather phase&#xff1a;聚集阶段&#xff0c;coordinating node汇总data node的搜索结果&#xff0c;并处理为最终结…

粘合/粘接/胶合聚酰亚胺PI材料使用UV胶,用的UV LED灯的波长范围及功率怎么选择?(三十九)

UV胶固化设备的UV LED波长范围是多少才能与UV胶匹配&#xff1f; UV胶固化设备的UV LED波长范围与UV胶的匹配性主要取决于所使用的UV胶的固化特性。不同的UV胶可能对UV光的波长有不同的要求。因此&#xff0c;要确定与UV胶匹配的UV LED波长范围&#xff0c;首先需要了解所使用的…

Transformer模型详解

Transformer模型实在论文《Attention Is All You Need》里面提出来的&#xff0c;用来生成文本的上下文编码&#xff0c;传统的上下问编码大多数是由RNN来完成的&#xff0c;不过&#xff0c;RNN存在两个缺点&#xff1a; 一、计算是顺序进行的&#xff0c;无法并行化&#xf…

C语言——每日一题(移除链表元素)

一.前言 今天在leetcode刷到了一道关于单链表的题。想着和大家分享一下。废话不多说&#xff0c;让我们开始今天的知识分享吧。 二.正文 1.1题目要求 1.2思路剖析 我们可以创建一个新的单链表&#xff0c;然后通过对原单链表的遍历&#xff0c;将数据不等于val的节点移到新…

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

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

Flink checkpoint 源码分析- Checkpoint barrier 传递源码分析

背景 在上一篇的博客里&#xff0c;大致介绍了flink checkpoint中的触发的大体流程&#xff0c;现在介绍一下触发之后下游的算子是如何做snapshot。 上一篇的文章: Flink checkpoint 源码分析- Flink Checkpoint 触发流程分析-CSDN博客 代码分析 1. 在SubtaskCheckpointCoo…

SQLite如何处理CSV 虚拟表(三十七)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite的DBSTAT 虚拟表&#xff08;三十六&#xff09; 下一篇:SQLite的扩展函数Carray()表值函数(三十八) ​ RFC4180格式是一种文本文件格式&#xff0c;被用于表格数据间的交互&#xff0c;也可将表格数据转化…

WebLlama:通过对话进行网页浏览的智能代理

WebLlama&#xff1a;智能网页浏览代理 WebLlama 是 McGill University 自然语言处理团队的研究项目&#xff0c;旨在开发能通过对话浏览网页的智能代理。这些代理基于 Llama-3 模型优化微调&#xff0c;基于 Llama-3-8B-Instruct 模型&#xff0c;专为网页导航和对话任务优化…

idea生成双击可执行jar包

我这里是一个生成xmind,解析sql的一个main方法,可以通过配置文件来修改有哪些类会执行 我们经常会写一个处理文件的main方法,使用时再去寻找,入入会比较麻烦,这里就可以把我们写过的main方法打成jar包,放到指定的目录来处理文件并生成想要的结果 1.写出我们自己的main方法,本地…

mac/windows下安装docker,minikube

1、安装docker Get Started | Docker 下载安装docker 就行 启动后&#xff0c;就可以正常操作docker了 使用docker -v 验证是否成功就行 2、安装minikube&#xff0c;是基于docker-desktop的 2.1、点击设置 2.2、选中安装&#xff0c;这个可能需要一点时间 这样安装后&…

OPC UA与IEC61499 在分布式智能电网中的应用

储能系统的系统架构 CMC &#xff1a;Cell Management Controller 储能设备中的电池芯包与电池均衡系统构成电池模组&#xff0c;国内的电池芯包通常使用被动均衡技术&#xff0c;被动均衡芯片通常通过SPI 接口连接到CMC 控制器&#xff0c;CMC 以单片机为主构建&#xff0c;具…

MySQL基础学习(待整理)

MySQL 简介 学习路径 MySQL 安装 卸载预安装的mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs安装网络工具 yum -y install net-tools yum -y install libaio下载rpm-bundle.tar安装包&#xff0c;并解压&#xff0c;使用rpm进行安装 rpm -ivh \ mysql-communi…

WordPress Automatic插件 SQL注入漏洞复现(CVE-2024-27956)

0x01 产品简介 WordPress Automatic(又称为WP Automatic)是一款流行的WordPress插件,旨在帮助网站管理员自动化内容创建和发布。该插件可以从各种来源(如RSS Feeds、社交媒体、视频网站、新闻网站等)获取内容,并将其自动发布到WordPress网站。 0x02 漏洞概述 WordPres…

汽车制造业安全事故频发,如何才能安全进行设计图纸文件外发?

汽车制造业产业链长&#xff0c;关联度高&#xff0c;汽车制造上游行业主要为钢铁、化工等行业&#xff0c;下游主要为个人消 费、基建、客运和军事等。在汽车制造的整个生命周期中&#xff0c;企业与上下游供应商、合作商之间有频繁、密切的数据交换&#xff0c;企业需要将设计…