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

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

相关文章

(三十二)第 5 章 数组和广义表(稀疏矩阵的十字链表存储表示实现)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

Linux - nohup 后台启动命令

目录 1. nohup启动 2. nohup与&&#xff0c;后台运行 3. nohup与>&#xff0c;日志重定向 4. nohup后台启动-综合使用(推荐) 5. 文件描述符-0 1 2 6. 知识扩展 6.1 不停止服务&#xff0c;直接清空nohup.out 6.2 只记录警告级别比较高的日志 6.3 不想输出日志 …

C#调用skiasharp操作并绘制图片

之前学习ViewFaceCore时采用Panel控件和GDI将图片及识别出的人脸方框和关键点绘制出来&#xff0c;本文将其修改为基于SKControl和SKCanvas实现相同的显示效果并支持保存为本地图片。   新建Winform项目&#xff0c;在Nuget包管理器中搜索并安装一下SkiaSharp和ViewFaceCore…

Centos 7 安装 Redis

Centos 7 安装 Redis 安装步骤1、安装软件源2、安装redis3、创建符号链接4、修改配置文件5、启动 redis6、停止redis 安装步骤 1、安装软件源 如果是Centos 8 直接yum install 就可以了 yum install -y redis但是如果是Centos 7&#xff0c;redis 默认的是 redis 3 系列&…

大数据技术就业和发展前景怎么样

大数据技术的就业和发展前景极为乐观&#xff0c;具有行业需求旺盛、就业多样性、可持续发展潜力等特点&#xff0c; 上大学网 &#xff08;www.sdaxue.com&#xff09;整理出了大数据技术的就业和发展前景以下几个关键趋势&#xff0c;供大家参考&#xff01; 行业需求旺盛&…

数据驱动,敏捷前行|MongoDB线下技术沙龙-杭州站活动

扫描海报中二维码或点击阅读原文&#xff0c;报名参加阿里云MongoDB在5月11日杭州举办的【数据驱动&#xff0c;敏捷前行——MongoDB企业开发加速器】线下沙龙活动&#xff0c;与MongoDB专家以及其他游戏行业同行一起探讨轻松获得游戏数据库高可用性和弹性的方法&#xff01; 在…

Eclipse MAT工具分析内存溢出

1、通过dominator_tree可以查看哪些对象大 可以看到com.codex.terry.entity.User对象有57万个 2、打开thread_overview查看内存溢出的代码

微服务之SpringCloud AlibabaSeata处理分布式事务

一、概述 1.1背景 一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用&#xff0c;就会产生分布式事务问题 but 关系型数据库提供的能力是基于单机事务的&#xff0c;一旦遇到分布式事务场景&#xff0c;就需要通过更多其他技术手段来解决问题。 全局事务&#xff1a;…

C++-8

1.C中list容器实现 using namespace std;int main() {list<int> l1;l1.assign(2,3);list<int>::iterator n l1.begin();for(n l1.begin();n!l1.end();n){cout << *n << "\t";}cout << endl;cout << "last one " &l…

Swift - 函数

文章目录 Swift - 函数1. 函数的定义2. 隐式返回(Implicit Return)3. 返回元组&#xff1a;实现多返回值4. 函数的文档注释5. 参数标签&#xff08;Argument Label&#xff09;6. 默认参数值&#xff08;Default Parameter Value&#xff09;7. 可变参数&#xff08;Variadic P…

BIM为电力、供水和道路工程无缝集成,助力智慧城市计划

在道路和公用事业工程中利用 Bentley Open 系列应用程序&#xff0c;项目进度加快 10%&#xff0c;节省成本 1,000 万印度卢比 推动基础设施现代化&#xff0c;实现智慧城市愿景 Dholera特别投资区位于印度艾哈迈达巴德西南 100 公里处&#xff0c;毗邻古吉拉特邦的贸易中心&a…

请求路径引发的http308错误

记录一个请求路径输错引发的问题。 正确路径&#xff1a; /user/bind-email 请求路径我们如果输错故意多打一个s /user/bind-emails 正常预检请求会报错404未找到&#xff0c;我们下意识的就去排查路径是不是写错了 但是如果多打一个/ /user//bind-email 此时预检请求会报308永…