首页 > 其他分享 >nacos实现对minio的动态版本切换

nacos实现对minio的动态版本切换

时间:2024-07-23 22:31:48浏览次数:9  
标签:服务 minio -- spring boot Nacos nacos 切换

问题:怎样在项目部署后,在不涉及对源码的改动情况下,以及如部分场景下业务的更替进行版本切换呢?

这里我们选择通过nacos进行相关操作,下面将以nacos控制minio修改服务提供商这一示例进行演示

首先,什么是nacos?

Nacos 是阿里巴巴开源的一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 的目标是帮助您发现、配置和管理微服务。它提供了一组简单易用的特性集,用于构建云原生应用,其特性包括:

  1. 服务发现与健康监测: Nacos 支持基于 DNS 和基于 RPC 的服务发现,可以检测服务实例的健康状况,并在服务不可用时自动剔除。

  2. 动态配置服务: 允许应用程序在不重启的情况下动态地更新配置。Nacos 会实时推送配置变更到客户端,减少配置更新时的延迟。

  3. 动态 DNS 服务: 支持基于服务的 DNS 解析,可以将服务名解析为 IP 地址,支持 A 记录和 SRV 记录。

  4. 服务及其元数据管理: Nacos 提供服务及其元数据的管理功能,包括命名空间、集群、分组等概念,使得服务管理更加灵活和精细。

  5. 非侵入式的服务管理: Nacos 的服务管理是无侵入式的,不需要在服务代码中添加任何特殊的 SDK 或者框架,只需在启动时指定 Nacos 的地址即可。

  6. 丰富的监控指标: 提供详细的监控数据,包括服务调用成功率、响应时间、健康检查状态等,方便运维人员进行监控和故障排查。

  7. 安全性和权限控制: 支持基于角色的访问控制(RBAC),可以对不同用户设置不同的权限,保护敏感的配置和资源。

Nacos 的设计目标是高度可扩展、高可用、高性能,并且易于使用。它支持多种部署模式,包括单机、集群以及高可用集群,可以根据实际需求选择合适的部署方案。Nacos 已经在阿里巴巴内部大规模使用,并逐渐被社区广泛采纳,适用于各种云原生场景下的服务管理和配置中心需求。

详情可见

nacos 的文档:https://nacos.io/zh-cn/docs/what-is-nacos.html

nacos 的架构原理:https://developer.aliyun.com/ebook/36?spm=a2c6h.20345107.ebook-index.18.152c2984fsi5ST

好了,回归正题我们采用的是虚拟机docker拉取镜像部署的方式

docker search nacos
docker pull nacos/nacos-server
# 镜像拉完之后,启动脚本
docker run -d \
  --name nacos \
  --privileged  \
  --cgroupns host \
  --env JVM_XMX=256m \
 --env MODE=standalone \
  --env JVM_XMS=256m \
  -p 8848:8848/tcp \
  -p 9848:9848/tcp \
  --restart=always \
  -w /home/nacos \
  nacos/nacos-server

  http://***:8848/nacos进入后台管理

 输入对应内容后保存

 

nacos:
  config:
    secret-key: nacos
    access-key: nacos
    data-id: jc-club-oss
    group: DEFAULT_GROUP
    type: yaml
    server-addr: your-ip:8848
    auto-refresh: true
    remote-first: true
    bootstrap:
      enable: true

  

 @NacosValue(value = "${storage.service.type}",autoRefreshed = true)
    private String storageType;
    @RequestMapping("/testGetA


 @RequestMapping("/testNacos")
    public String testNacos() throws Exception {
        List<String> allBucket = fileService.getAllBucket();
        return storageType;
    }

  这样,只需要修改我们nacos的配置,即可做到不修改源码情况下对服务提供商的具体修改。

pom文件

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.4.2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.4.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.34</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.11</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
            <version>2.4.2</version>
        </dependency>
    </dependencies>

  

标签:服务,minio,--,spring,boot,Nacos,nacos,切换
From: https://www.cnblogs.com/azwz/p/18319776

相关文章

  • Milvus 核心组件(3)--- MinIO详解
    目录背景MinIO安装dockerdesktop安装UbuntuUI在docker中的安装Minio下载及安装启动miniodockerimage保存启动minioweb网页下一次启动MinIO基本概念基本概述主要特性应用场景MinIO使用连接server创建bucket查询bucket上传文件到bucket一般用......
  • oss模块设计之适配器模式改造minio
    在进行本节的笔记之前,我们先进行对oss服务与minio做一个简单介绍,方便大家更便于理解;OSS服务(ObjectStorageService)OSS服务,即对象存储服务,是一种用于云端的大规模、高可用、安全、低成本的数据存储服务。它主要用于存储非结构化的数据,如图片、音频、视频、文档等文件。OSS服务具......
  • C#开发的全屏图片切换效果应用 - 开源研究系列文章 - 个人小作品
          这天无聊,想到上次开发的图片显示软件《PhotoNet看图软件》,然后想到开发一个全屏图片切换效果的应用,类似于屏幕保护程序,于是就写了此博文。这个应用比较简单,主要是全屏切换换图片效果的问题。 1、项目目录;  2、源码介绍;1)类库部分源码;......
  • 使用 minio 将文件上传到 s3 存储时出错
    我正在尝试上传两个文件。两者具有相同的扩展名,但其中一个比另一个小得多。一个只有100kb,另一个是100MB。扩展名为.bp,这些文件是机器学习模型的一部分。较小的文件已成功上传,没有任何问题。较大的文件给了我以下错误:InvalidXMLError:message:"Error"XMLisnotpar......
  • Docker Minio rclone数据迁移
    dockerminio进行数据迁移使用rclone进行数据迁移是一种非常灵活且强大的方式,特别是在处理大规模数据集或跨云平台迁移时。rclone是一款开源的命令行工具,用于同步文件和目录到多种云存储服务,包括MinIO。下面是使用rclone进行数据迁移至MinIO的步骤和示例。使用rclone迁......
  • ControlMyMonitor、MultiMonitorTool、autohotkey 设置笔记本和台式机切换屏幕
    一、背景1.1台笔记本、1台台式机共用一个显示器。2.显示器1个vga输入、1个hdmi输入3.笔记本通过hdmi转vga连到显示器,台式机通过HDMI连到显示器二、需求通过键盘切换显示器输入。三、软件介绍ControlMyMonitor:控制显示器输入方式(选择vga、hdmi)MultiMonitorTool:控制电脑在哪......
  • 写一个 python daemo 注册到nacos中
     """注册到nacos中的deamonnacos:2.3.2(模式:standalone)python:3.6.8nohuppython3demon.py&"""importrequestsimportthreadingimporttime#Nacos服务器地址和端口nacos_url="http://127.0.0.1:8848"#Nacos登录信息user......
  • 使用Nginx反向代理minio,提供文件公共访问
    MinIO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。在之前的一篇文章介绍了《使用Docker搭建minio对象存储与mc客户端常用命令》,这篇文章......
  • 使用NGINX + MINIO + IMAGEPROXY 搭建私有图床
    MinIO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。图床的基础是Minio,但minio并不提......
  • zabbix切换成中文, 安装中文包和字体
    zabbix安装中文包&字体1.在centos光盘中可以找到如下3个文件:CentOS-8.5.2111-x86_64-dvd1.iso\BaseOS\Packages\•glibc-common-2.28-164.el8.x86_64.rpm•glibc-2.28-164.el8.x86_64.rpm •glibc-langpack-zh-2.28-164.el8.x86_64.rpm2.生产环境离......