爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      技术驱动:探索SpringBoot的大文件上传策略

      首页 知识中心 软件开发 文章详情页

      技术驱动:探索SpringBoot的大文件上传策略

      2024-10-25 07:12:30 阅读次数:26

      分片

      1.分片上传技术

      为了处理大文件上传并保证性能,前后端可以使用分片上传(也称为分块上传)技术。

      1.选择原因

      分片上传(也称为分块上传)是一种处理大文件上传的技术,主要目的是提高上传的可靠性和效率。
      网络稳定性和可靠性:
      断点续传:在上传大文件时,网络中断是一个常见的问题。如果没有分片上传,整个文件上传过程必须重新开始,这样不仅浪费时间,还增加了失败的可能性。而分片上传允许在网络恢复后从中断的地方继续上传,从而提高了上传的可靠性。
      错误恢复:上传过程中,如果某个分片上传失败,只需重新上传这个分片,而不需要重新上传整个文件。
      资源管理:
      内存消耗:上传大文件时,如果一次性读取整个文件,会占用大量内存,甚至可能导致内存溢出。而分片上传每次只读取和上传一个小块,内存消耗更可控。
      带宽优化:分片上传可以更好地利用带宽资源,特别是在网络不稳定的情况下,分片上传可以避免带宽的浪费。
      大文件支持:
      文件大小限制:一些浏览器和服务器对单个文件的上传大小有限制。通过分片上传,可以绕过这些限制,使上传大文件成为可能。
      服务器处理压力:一次性上传大文件会给服务器带来很大的压力,分片上传可以减轻服务器的负担,因为服务器可以逐片处理和存储文件。

      2.前端处理

      1.文件分片:将大文件分成多个小块,每个块的大小可以根据需求设定。
      2.上传分片:逐个上传分片,每个分片上传成功后上传下一个分片。
      3.上传进度:可以通过计算已上传分片的大小来展示上传进度。
      4.合并分片:所有分片上传完成后,通知后端合并分片。

      3.后端处理

      1.接收分片:后端接收每个分片并存储。
      2.合并分片:在接收到所有分片后,将分片合并成完整文件。
      3.处理上传进度和失败重传:记录上传进度,支持失败重传。

      2.整合particles.js

      particles.js 是一个轻量级的 JavaScript 库,用于在网页上创建交互性和美观的粒子效果。它能够生成各种各样的粒子动画,例如气泡、雪花、星星等,并且可以响应用户的鼠标移动和点击事件,增加网页的动态效果和吸引力。

      1.主要特性

      • 轻量级:particles.js 体积小,加载速度快。
      • 高效:使用 HTML5 的 canvas 元素进行渲染,性能优越。
      • 高度可定制:提供丰富的配置选项,可以自定义粒子的数量、颜色、形状、大小、速度等。
      • 交互性:支持鼠标事件,例如悬停和点击,从而实现粒子的交互效果。
      • 响应式:能够适应不同屏幕大小,确保在各种设备上的显示效果。

      2.安装与使用

      1. 引入 particles.js

      你可以通过 CDN 或者下载文件的方式引入 particles.js。

      使用 CDN:

      <!-- 使用 CDN 引入 -->
      <script src></script>
      

      下载文件:

      你可以从 GitHub 下载 particles.js 文件,并将其放置在项目中,然后使用以下方式引用:

      <script src="path/to/particles.min.js"></script>
      
      2. 创建粒子容器

      在 HTML 中创建一个容器,用于显示粒子效果:

      <div id="particles-js"></div>
      
      3. 初始化 particles.js

      在 JavaScript 中初始化 particles.js 并进行配置:

      <script>
      particlesJS('particles-js', {
                      "particles": {
                          "number": {
                              "value": 80,//粒子数量
                              "density": {
                                  "enable": true,
                                  "value_area": 800 //粒子活动区域
                              }
                          },
                          "color": {
                              "value": "#333333" //粒子颜色
                          },
                          "shape": {
                              "type": "circle", //粒子形状
                              "stroke": { //粒子的描边
                                  "width": 0,
                                  "color": "#000000"
                              },
                              "polygon": {
                                  "nb_sides": 5
                              }
                          },
                          "opacity": { //粒子透明度
                              "value": 0.5,
                              "random": false,
                              "anim": {
                                  "enable": false, //是否开启
                                  "speed": 1,//动画速度
                                  "opacity_min": 0.1,
                                  "sync": false
                              }
                          },
                          "size": {
                              "value": 5,
                              "random": true,
                              "anim": {
                                  "enable": false,
                                  "speed": 40,
                                  "size_min": 0.1,
                                  "sync": false
                              }
                          },
                          "line_linked": {//粒子之间的连线配置
                              "enable": true,//是否开启连线
                              "distance": 150,//连线距离
                              "color": "#333333",//连线的颜色
                              "opacity": 0.4,
                              "width": 1 //连线宽度
                          },
                          "move": {
                              "enable": true, //粒子是否移动
                              "speed": 6,//粒子移动速度
                              "direction": "none",//粒子移动方向
                              "random": true,//是否随机移动
                              "straight": false,//是否直线移动
                              "out_mode": "out",
                              "bounce": false,//是否开启碰撞弹跳
                              "attract": {
                                  "enable": false,
                                  "rotateX": 600,
                                  "rotateY": 1200
                              }
                          }
                      },
                      "interactivity": {
                          "detect_on": "canvas",
                          "events": {
                              "onhover": {//鼠标悬浮效果
                                  "enable": true,
                                  "mode": "repulse"
                              },
                              "onclick": {//鼠标点击效果
                                  "enable": true,
                                  "mode": "push"
                              },
                              "resize": true
                          },
                          "modes": {
                              "grab": {
                                  "distance": 400,
                                  "line_linked": {
                                      "opacity": 1
                                  }
                              },
                              "bubble": {
                                  "distance": 400,
                                  "size": 40,
                                  "duration": 2,
                                  "opacity": 8,
                                  "speed": 3
                              },
                              "repulse": {
                                  "distance": 200,
                                  "duration": 0.4
                              },
                              "push": {
                                  "particles_nb": 4
                              },
                              "remove": {
                                  "particles_nb": 2
                              }
                          }
                      },
                      "retina_detect": true //是否启动视网膜屏检测
                  });
      </script>
      

      3.配置选项

      • number: 粒子的数量及密度。
      • color: 粒子的颜色。
      • shape: 粒子的形状,可以是 circle(圆形)、edge(边缘)、triangle(三角形)、polygon(多边形)或 image(图片)。
      • opacity: 粒子的透明度。
      • size: 粒子的大小。

      具体的配置可以在Github中查看,如下所示:
      技术驱动:探索SpringBoot的大文件上传策略

      3.前端代码

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>File Upload with Particles.js Background</title>
          <style>
              body {
                  font-family: Arial, sans-serif;
                  background-color: #f4f4f9;
                  margin: 0;
                  padding: 20px;
                  display: flex;
                  justify-content: center;
                  align-items: center;
                  height: 100vh;
                  overflow: hidden;
              }
      
              .container {
                  background-color: #fff;
                  padding: 20px;
                  border-radius: 8px;
                  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                  text-align: center;
                  z-index: 1;
                  position: relative;
              }
      
              h1 {
                  color: #333;
              }
      
              input[type="file"] {
                  margin: 10px 0;
              }
      
              button {
                  background-color: #007bff;
                  color: #fff;
                  border: none;
                  padding: 10px 20px;
                  border-radius: 4px;
                  cursor: pointer;
                  font-size: 16px;
              }
      
              button:hover {
                  background-color: #0056b3;
              }
      
              progress {
                  width: 100%;
                  height: 20px;
                  margin-top: 10px;
                  border-radius: 4px;
              }
      
              #particles-js {
                  position: absolute;
                  width: 100%;
                  height: 100%;
                  top: 0;
                  left: 0;
                  z-index: 0;
              }
          </style>
          <!-- 使用 CDN 引入 -->
          <script src></script>
      </head>
      <body>
          <div id="particles-js"></div>
          <div class="container">
              <h1>File Upload</h1>
              <input type="file" id="fileInput" />
              <button onclick="uploadFile()">Upload</button>
              <progress id="progressBar" value="0" max="100"></progress>
          </div>
      
          <script>
              particlesJS('particles-js', {
                      "particles": {
                          "number": {
                              "value": 80,//粒子数量
                              "density": {
                                  "enable": true,
                                  "value_area": 800 //粒子活动区域
                              }
                          },
                          "color": {
                              "value": "#333333" //粒子颜色
                          },
                          "shape": {
                              "type": "circle", //粒子形状
                              "stroke": { //粒子的描边
                                  "width": 0,
                                  "color": "#000000"
                              },
                              "polygon": {
                                  "nb_sides": 5
                              }
                          },
                          "opacity": { //粒子透明度
                              "value": 0.5,
                              "random": false,
                              "anim": {
                                  "enable": false, //是否开启
                                  "speed": 1,//动画速度
                                  "opacity_min": 0.1,
                                  "sync": false
                              }
                          },
                          "size": {
                              "value": 5,
                              "random": true,
                              "anim": {
                                  "enable": false,
                                  "speed": 40,
                                  "size_min": 0.1,
                                  "sync": false
                              }
                          },
                          "line_linked": {//粒子之间的连线配置
                              "enable": true,//是否开启连线
                              "distance": 150,//连线距离
                              "color": "#333333",//连线的颜色
                              "opacity": 0.4,
                              "width": 1 //连线宽度
                          },
                          "move": {
                              "enable": true, //粒子是否移动
                              "speed": 6,//粒子移动速度
                              "direction": "none",//粒子移动方向
                              "random": true,//是否随机移动
                              "straight": false,//是否直线移动
                              "out_mode": "out",
                              "bounce": false,//是否开启碰撞弹跳
                              "attract": {
                                  "enable": false,
                                  "rotateX": 600,
                                  "rotateY": 1200
                              }
                          }
                      },
                      "interactivity": {
                          "detect_on": "canvas",
                          "events": {
                              "onhover": {//鼠标悬浮效果
                                  "enable": true,
                                  "mode": "repulse"
                              },
                              "onclick": {//鼠标点击效果
                                  "enable": true,
                                  "mode": "push"
                              },
                              "resize": true
                          },
                          "modes": {
                              "grab": {
                                  "distance": 400,
                                  "line_linked": {
                                      "opacity": 1
                                  }
                              },
                              "bubble": {
                                  "distance": 400,
                                  "size": 40,
                                  "duration": 2,
                                  "opacity": 8,
                                  "speed": 3
                              },
                              "repulse": {
                                  "distance": 200,
                                  "duration": 0.4
                              },
                              "push": {
                                  "particles_nb": 4
                              },
                              "remove": {
                                  "particles_nb": 2
                              }
                          }
                      },
                      "retina_detect": true //是否启动视网膜屏检测
                  });
              const CHUNK_SIZE = 1024 * 1024; // 1MB per chunk
      
              async function uploadFile() {
                  const fileInput = document.getElementById('fileInput');
                  const file = fileInput.files[0];
                  const totalChunks = Math.ceil(file.size / CHUNK_SIZE);
                  // 将大文件分片上传
                  for (let i = 0; i < totalChunks; i++) {
                      const start = i * CHUNK_SIZE;
                      const end = Math.min(start + CHUNK_SIZE, file.size);
                      const chunk = file.slice(start, end);
                      const formData = new FormData();
                      formData.append('chunkFile', chunk);
                      formData.append('index', i);
                      await fetch
                          method: 'POST',
                          body: formData
                      });
                      document.getElementById('progressBar').value = (i + 1) / totalChunks * 100;
                  }
      
                  // Notify server to merge chunks
                  await fetch
                      method: 'POST',
                      body: JSON.stringify({ fileName: file.name }),
                      headers: { 'Content-Type': 'application/json' }
                  });
              }
          </script>
      </body>
      </html>
      
      

      对应的界面效果如下所示:

      技术驱动:探索SpringBoot的大文件上传策略

      4.后端代码

      1.创建一个SpringBoot项目(模块)

      技术驱动:探索SpringBoot的大文件上传策略
      后面只需要导入Spring Web模块即可!
      这里创建项目或者模块后,如果发现maven始终无法下载对应的依赖,那就需要更新maven的镜像仓库配置。
      可以找到maven中的conf目录下的setting.xml文件,修改里面的mirror标签的内容,具体如下所示:

      <mirror>
          <!--This sends everything else to /public -->
          <id>nexus-aliyun</id>
          <mirrorOf>*</mirrorOf>
          <name>Nexus aliyun</name>
          
      </mirror>
      

      技术驱动:探索SpringBoot的大文件上传策略

      2.文件上传配置

      需要在resources下的application.properties写一些配置项,来保证文件的正常上传等功能!具体如下所示:

      spring.servlet.multipart.enabled=true
      spring.servlet.multipart.max-file-size=10MB
      spring.servlet.multipart.max-request-size=10MB
      

      3.控制层代码

      这里在类的层级下通过 @CrossOrigin 设置的跨域,也可以通过写配置文件在全局设置跨域!

      package com.xing.bigfileuploaddemo.controller;
      import org.springframework.web.bind.annotation.*;
      import org.springframework.web.multipart.MultipartFile;
      import java.io.File;
      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.nio.file.Files;
      import java.util.Map;
      
      @RestController
      @CrossOrigin
      public class BigFileUploadController {
          // 获取资源文件夹的路径
          private static final String UPLOAD_DIR = System.getProperty("user.dir") + "/upload/";
          @GetMapping("/hello")
          public String hello(){
              return "hello BigFileUpload";
          }
      
      
          @PostMapping("/upload")
          public String uploadChunk(@RequestParam("chunkFile") MultipartFile chunkFile,
                                                    @RequestParam("index") int index) {
              File uploadDir = new File(UPLOAD_DIR);
              if (!uploadDir.exists()) {
                  uploadDir.mkdirs();
              }
              File file = new File(UPLOAD_DIR + "chunk_" + index);
              try {
                  chunkFile.transferTo(file);
              } catch (IOException e) {
                  throw new RuntimeException(e);
              }
              return ("Chunk " + index + " uploaded");
          }
      
          @PostMapping("/merge")
          public String mergeChunks(@RequestBody Map<String, String> request) throws FileNotFoundException {
              String filename = request.get("fileName");
              File mergedFile = new File(UPLOAD_DIR + filename);
              try (FileOutputStream fos = new FileOutputStream(mergedFile)) {
                  for(int i=0;;i++){
                      File chunkFile = new File(UPLOAD_DIR + "chunk_" + i);
                      if(!chunkFile.exists()){
                          break;
                      }
                      Files.copy(chunkFile.toPath(), fos);
                      chunkFile.delete();
                  }
              } catch (IOException e) {
                  throw new RuntimeException(e);
              }
              return "File merged successfully";
          }
      }
      
      
      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://lglxv587.blog.csdn.net/article/details/140183147,作者:散一世繁华,颠半世琉璃,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:从零开始:在VSCode中打造完美的C++开发环境

      下一篇:Java服务端数据库索引优化:提升查询性能

      相关文章

      2025-04-18 07:11:19

      动态分片方案和它要解决的问题

      动态分片方案和它要解决的问题

      2025-04-18 07:11:19
      target , 分片 , 解决
      2025-02-28 09:27:35

      【计算机网络】IP协议分析

      【计算机网络】IP协议分析

      2025-02-28 09:27:35
      bytes , 分片 , 报文 , 数据 , 路由
      2025-02-11 09:36:37

      【Redis】Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结 --研读

      【Redis】Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结 --研读

      2025-02-11 09:36:37
      redis , Redis , 分片 , 哈希 , 失效 , 服务器 , 缓存
      2024-12-20 07:54:41

      Redis分片机制

      Redis分片机制

      2024-12-20 07:54:41
      Redis , 分片 , 哈希 , 实例 , 客户端
      2024-12-16 09:18:45

      Mycat的常见面试题(全)

      Mycat的常见面试题(全)

      2024-12-16 09:18:45
      二进制 , 全局 , 分片 , 数据库
      2024-11-15 07:00:08

      解析Spring Boot中的数据库分片策略

      数据库分片是在面对大规模数据时常用的技术手段,它将数据水平划分成多个片段(Shard),分别存储在不同的物理节点上,以提升系统的性能和扩展性。

      2024-11-15 07:00:08
      Boot , 分片 , 数据库
      2024-10-22 06:56:31

      ES集群故障转移

      ES集群故障转移

      2024-10-22 06:56:31
      ES , 分片 , 故障
      2024-10-22 06:56:31

      ES集群分片副本

      ES集群分片副本

      2024-10-22 06:56:31
      ES , 分片 , 副本
      2024-10-18 09:50:01

      Java后端微服务架构下的数据库设计:Sharding与CQRS

      微服务架构将应用程序分解为一组小型服务,每个服务实现特定的业务功能。在这种架构下,数据库设计成为关键,需要支持服务的独立性、可扩展性和性能。

      2024-10-18 09:50:01
      分片 , 数据库 , 服务
      2024-06-03 09:11:33

      ​​​​​​C#系列-C#EF框架实现分库分表(21)

      在C#中使用Entity Framework (EF)框架实现分库分表(也称为数据库分片或水平切分)是一个相对复杂的过程,因为EF本身并不直接支持分库分表。分库分表通常是为了解决单一数据库的性能瓶颈、数据量过大、高并发等问题而采取的一种策略。

      2024-06-03 09:11:33
      分片
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5238643

      查看更多

      最新文章

      【Redis】Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结 --研读

      2025-02-11 09:36:37

      解析Spring Boot中的数据库分片策略

      2024-11-15 07:00:08

      Java后端微服务架构下的数据库设计:Sharding与CQRS

      2024-10-18 09:50:01

      [Elastic-Job2.1.5源码]-9- 调度作业启动时的生命周期

      2024-05-31 08:12:32

      查看更多

      热门文章

      [Elastic-Job2.1.5源码]-9- 调度作业启动时的生命周期

      2024-05-31 08:12:32

      Java后端微服务架构下的数据库设计:Sharding与CQRS

      2024-10-18 09:50:01

      解析Spring Boot中的数据库分片策略

      2024-11-15 07:00:08

      【Redis】Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结 --研读

      2025-02-11 09:36:37

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Java后端微服务架构下的数据库设计:Sharding与CQRS

      [Elastic-Job2.1.5源码]-9- 调度作业启动时的生命周期

      解析Spring Boot中的数据库分片策略

      【Redis】Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结 --研读

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号