【工具】jsDelivr CDN完全指南:免費高速的開源項目CDN服務

前言

在現代Web開發中,內容分發網絡(CDN)已經成為提升網站性能的重要工具。jsDelivr作為一個免費、快速、可靠的開源CDN服務,為全球開發者提供了優質的靜態資源分發服務。無論是加速GitHub倉庫訪問、分發npm包,還是為開源項目提供CDN支持,jsDelivr都是開發者的首選方案。本文將全面介紹jsDelivr的使用方法、配置技巧和最佳實踐。

一、jsDelivr簡介

(一)什么是jsDelivr

jsDelivr是一個免費的開源CDN(Content Delivery Network),專門為開源項目提供快速、可靠的靜態資源分發服務。它支持多種資源來源,包括GitHub、npm、WordPress等。

1. 核心特性

  • 完全免費:無需注冊,無使用費用
  • 全球覆蓋:超過750個CDN節點遍布全球
  • 高性能:智能路由和緩存策略
  • 多源支持:GitHub、npm、WordPress等多種來源
  • 高可用性:99.9%的服務可用性保證

2. 服務優勢

**速度優勢**
- 全球CDN節點就近訪問
- 智能緩存和壓縮
- HTTP/2和HTTP/3支持**穩定性優勢**
- 多重備份機制
- 自動故障轉移
- 24/7監控服務**易用性優勢**
- 無需注冊即可使用
- 簡單的URL格式
- 豐富的API接口

(二)jsDelivr的工作原理

1. 基本架構

命中
未命中
用戶請求
jsDelivr CDN
緩存檢查
返回緩存內容
從源站獲取
GitHub/npm/WordPress
緩存并返回

2. 緩存策略

  • 智能緩存:根據文件類型和訪問頻率自動調整緩存時間
  • 版本控制:支持特定版本和最新版本的緩存
  • 全球同步:確保全球節點內容一致性

(三)支持的資源類型

1. GitHub倉庫

# 基本格式
https://cdn.jsdelivr.net/gh/用戶名/倉庫名@版本號/文件路徑# 示例
https://cdn.jsdelivr.net/gh/jquery/jquery@3.6.0/dist/jquery.min.js

2. npm包

# 基本格式
https://cdn.jsdelivr.net/npm/包名@版本號/文件路徑# 示例
https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.js

3. WordPress插件

# 基本格式
https://cdn.jsdelivr.net/wp/plugins/插件名/版本號/文件路徑# 示例
https://cdn.jsdelivr.net/wp/plugins/contact-form-7/5.7.7/includes/css/styles.css

二、GitHub倉庫加速

(一)基本使用方法

1. URL格式規則

# 完整格式
https://cdn.jsdelivr.net/gh/用戶名/倉庫名@分支或標簽/文件路徑# 使用默認分支(推薦)
https://cdn.jsdelivr.net/gh/用戶名/倉庫名/文件路徑# 指定分支
https://cdn.jsdelivr.net/gh/用戶名/倉庫名@main/文件路徑# 指定標簽版本
https://cdn.jsdelivr.net/gh/用戶名/倉庫名@v1.0.0/文件路徑

2. 實際應用示例

圖片資源加速
<!-- GitHub原始鏈接(慢) -->
<img src="https://raw.githubusercontent.com/uwakeme/my-images/main/logo.png"><!-- jsDelivr CDN鏈接(快) -->
<img src="https://cdn.jsdelivr.net/gh/uwakeme/my-images/logo.png">
JavaScript庫加速
<!-- 加載開源JavaScript庫 -->
<script src="https://cdn.jsdelivr.net/gh/highlightjs/highlight.js@11.8.0/build/highlight.min.js"></script><!-- 加載CSS樣式文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/highlight.js@11.8.0/build/styles/default.min.css">

(二)圖床應用場景

1. 博客圖片托管

# 在Markdown中使用
![圖片描述](https://cdn.jsdelivr.net/gh/username/image-repo/images/photo.jpg)# 在HTML中使用
<img src="https://cdn.jsdelivr.net/gh/username/image-repo/images/photo.jpg" alt="圖片描述">

2. PicGo配置

{"repo": "username/image-hosting","branch": "main","token": "your_github_token","path": "images/","customUrl": "https://cdn.jsdelivr.net/gh/username/image-hosting"
}

3. 批量圖片處理

// 批量轉換GitHub鏈接為jsDelivr鏈接
function convertToJsDelivr(githubUrl) {const regex = /https:\/\/raw\.githubusercontent\.com\/([^\/]+)\/([^\/]+)\/([^\/]+)\/(.+)/;const match = githubUrl.match(regex);if (match) {const [, user, repo, branch, path] = match;return `https://cdn.jsdelivr.net/gh/${user}/${repo}@${branch}/${path}`;}return githubUrl;
}// 使用示例
const originalUrl = "https://raw.githubusercontent.com/user/repo/main/image.jpg";
const cdnUrl = convertToJsDelivr(originalUrl);
console.log(cdnUrl); // https://cdn.jsdelivr.net/gh/user/repo@main/image.jpg

(三)版本管理策略

1. 使用標簽版本(推薦)

# 使用具體版本標簽,確保穩定性
https://cdn.jsdelivr.net/gh/jquery/jquery@3.6.0/dist/jquery.min.js# 使用語義化版本范圍
https://cdn.jsdelivr.net/gh/jquery/jquery@3/dist/jquery.min.js  # 最新3.x版本

2. 使用分支版本

# 使用主分支(內容可能變化)
https://cdn.jsdelivr.net/gh/username/repo@main/file.js# 使用開發分支
https://cdn.jsdelivr.net/gh/username/repo@develop/file.js

3. 版本選擇建議

**生產環境**
- 使用具體的標簽版本
- 避免使用分支名稱
- 定期更新版本**開發環境**
- 可以使用分支名稱
- 便于測試最新功能
- 注意緩存問題

三、npm包分發服務

(一)npm包CDN使用

1. 基本語法

# 完整格式
https://cdn.jsdelivr.net/npm/包名@版本號/文件路徑# 使用最新版本
https://cdn.jsdelivr.net/npm/包名/文件路徑# 指定版本范圍
https://cdn.jsdelivr.net/npm/包名@^1.0.0/文件路徑

2. 常用前端庫示例

Vue.js
<!-- Vue 3 -->
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js"></script><!-- Vue 2 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
React
<!-- React 開發版 -->
<script src="https://cdn.jsdelivr.net/npm/react@18/umd/react.development.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@18/umd/react-dom.development.js"></script><!-- React 生產版 -->
<script src="https://cdn.jsdelivr.net/npm/react@18/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@18/umd/react-dom.production.min.js"></script>
工具庫
<!-- Lodash -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js"></script><!-- Moment.js -->
<script src="https://cdn.jsdelivr.net/npm/moment@2/moment.min.js"></script><!-- Axios -->
<script src="https://cdn.jsdelivr.net/npm/axios@1/dist/axios.min.js"></script>

(二)包文件瀏覽

1. 瀏覽包內容

# 查看包的所有文件
https://cdn.jsdelivr.net/npm/包名/# 查看特定版本的文件
https://cdn.jsdelivr.net/npm/包名@版本號/# 示例:查看Vue包內容
https://cdn.jsdelivr.net/npm/vue@3/

2. 自動文件選擇

# jsDelivr會自動選擇合適的文件
https://cdn.jsdelivr.net/npm/vue@3  # 自動選擇 dist/vue.global.js# 手動指定文件
https://cdn.jsdelivr.net/npm/vue@3/dist/vue.esm-browser.js

(三)組合加載功能

1. 多文件合并

<!-- 合并多個文件為一個請求 -->
<script src="https://cdn.jsdelivr.net/combine/npm/jquery@3,npm/bootstrap@5/dist/js/bootstrap.bundle.min.js"></script><!-- 合并CSS文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/combine/npm/bootstrap@5/dist/css/bootstrap.min.css,npm/font-awesome@6/css/all.min.css">

2. 壓縮和優化

# 自動壓縮(添加.min后綴)
https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.min.js# 原始文件
https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js

四、高級功能與配置

(一)API接口使用

1. 包信息查詢

// 獲取包的基本信息
fetch('https://data.jsdelivr.com/v1/package/npm/vue').then(response => response.json()).then(data => console.log(data));// 獲取包的版本列表
fetch('https://data.jsdelivr.com/v1/package/npm/vue/versions').then(response => response.json()).then(data => console.log(data));

2. 文件列表查詢

// 獲取包的文件列表
fetch('https://data.jsdelivr.com/v1/package/npm/vue@3/flat').then(response => response.json()).then(data => console.log(data.files));// 獲取GitHub倉庫文件列表
fetch('https://data.jsdelivr.com/v1/package/gh/jquery/jquery@3.6.0/flat').then(response => response.json()).then(data => console.log(data.files));

3. 統計信息查詢

// 獲取包的下載統計
fetch('https://data.jsdelivr.com/v1/package/npm/vue/stats').then(response => response.json()).then(data => console.log(data));

(二)緩存控制

1. 緩存策略理解

**默認緩存時間**
- 穩定版本:7天
- 預發布版本:1天
- 分支版本:12小時**緩存刷新**
- 自動刷新:根據版本更新
- 手動刷新:通過API接口

2. 緩存刷新方法

// 通過API刷新緩存
fetch('https://purge.jsdelivr.net/npm/package@version/file', {method: 'POST'
});// 示例:刷新特定文件緩存
fetch('https://purge.jsdelivr.net/npm/vue@3/dist/vue.global.js', {method: 'POST'
});

(三)性能優化技巧

1. 預加載和預連接

<!-- DNS預解析 -->
<link rel="dns-prefetch" href="//cdn.jsdelivr.net"><!-- 預連接 -->
<link rel="preconnect" href="https://cdn.jsdelivr.net"><!-- 預加載關鍵資源 -->
<link rel="preload" href="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js" as="script">

2. 資源優先級控制

<!-- 高優先級資源 -->
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js" defer></script><!-- 低優先級資源 -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js" async></script>

3. 錯誤處理和回退

<script>
// CDN加載失敗時的回退方案
function loadScript(src, fallback) {const script = document.createElement('script');script.src = src;script.onerror = function() {console.warn('CDN加載失敗,使用備用源');const fallbackScript = document.createElement('script');fallbackScript.src = fallback;document.head.appendChild(fallbackScript);};document.head.appendChild(script);
}// 使用示例
loadScript('https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js','/local/vue.global.js'  // 本地備用文件
);
</script>

五、實際應用案例

(一)個人博客優化

1. 靜態資源CDN化

<!DOCTYPE html>
<html>
<head><!-- CSS庫 --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css"><!-- 自定義樣式(通過GitHub倉庫) --><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/username/blog-assets/css/custom.css">
</head>
<body><!-- JavaScript庫 --><script src="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/js/bootstrap.bundle.min.js"></script><script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-core.min.js"></script><!-- 自定義腳本 --><script src="https://cdn.jsdelivr.net/gh/username/blog-assets/js/main.js"></script>
</body>
</html>

2. 圖片資源優化

<!-- 博客文章中的圖片 -->
![文章配圖](https://cdn.jsdelivr.net/gh/username/blog-images/posts/article-1/cover.jpg)<!-- 頭像和Logo -->
![頭像](https://cdn.jsdelivr.net/gh/username/blog-images/avatar.jpg)
![Logo](https://cdn.jsdelivr.net/gh/username/blog-images/logo.svg)

(二)開源項目文檔

1. 文檔站點資源

<!-- 文檔主題樣式 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css"><!-- 文檔功能插件 -->
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>

2. 示例代碼托管

// 在文檔中引用GitHub倉庫的示例代碼
const exampleUrl = 'https://cdn.jsdelivr.net/gh/username/project-examples/basic-usage.js';fetch(exampleUrl).then(response => response.text()).then(code => {document.getElementById('code-example').textContent = code;});

(三)企業級應用

1. 微前端架構

// 動態加載微應用資源
const loadMicroApp = async (appName, version) => {const baseUrl = `https://cdn.jsdelivr.net/gh/company/${appName}@${version}`;// 加載CSSconst link = document.createElement('link');link.rel = 'stylesheet';link.href = `${baseUrl}/dist/app.css`;document.head.appendChild(link);// 加載JavaScriptconst script = document.createElement('script');script.src = `${baseUrl}/dist/app.js`;document.head.appendChild(script);
};// 使用示例
loadMicroApp('user-management', 'v1.2.0');

2. 組件庫分發

<!-- 企業組件庫 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/company/ui-components@latest/dist/components.css">
<script src="https://cdn.jsdelivr.net/gh/company/ui-components@latest/dist/components.js"></script><!-- 特定版本的組件 -->
<script src="https://cdn.jsdelivr.net/gh/company/ui-components@v2.1.0/dist/button.js"></script>

六、最佳實踐與注意事項

(一)使用最佳實踐

1. 版本管理策略

**生產環境建議**
- 使用具體的版本號,避免使用latest
- 定期更新依賴版本
- 建立版本回退機制**開發環境建議**
- 可以使用分支名稱進行測試
- 注意緩存對開發的影響
- 使用本地開發服務器作為備用

2. 性能優化建議

<!-- 資源預加載 -->
<link rel="preload" href="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js" as="script"><!-- 關鍵CSS內聯 -->
<style>/* 關鍵樣式內聯,非關鍵樣式使用CDN */
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css" media="print" onload="this.media='all'"><!-- 非阻塞加載 -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js" defer></script>

3. 安全性考慮

<!-- 使用SRI確保文件完整性 -->
<script src="https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.js" integrity="sha384-..." crossorigin="anonymous"></script><!-- CSP策略配置 -->
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdn.jsdelivr.net;">

(二)常見問題解決

1. 緩存問題

// 強制刷新緩存的方法
const timestamp = Date.now();
const url = `https://cdn.jsdelivr.net/gh/username/repo/file.js?t=${timestamp}`;// 或者使用版本號
const version = '1.0.1';
const url = `https://cdn.jsdelivr.net/gh/username/repo@v${version}/file.js`;

2. 訪問限制

**文件大小限制**
- 單個文件最大50MB
- 建議將大文件分割或壓縮**倉庫大小限制**
- GitHub倉庫建議不超過1GB
- 定期清理不必要的文件**流量限制**
- 個人使用通常不會觸及限制
- 商業用途建議聯系jsDelivr團隊

3. 故障處理

// 多CDN備用方案
const cdnSources = ['https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js','https://unpkg.com/vue@3/dist/vue.global.js','/local/vue.global.js'
];function loadWithFallback(sources, index = 0) {if (index >= sources.length) {console.error('所有CDN源都無法訪問');return;}const script = document.createElement('script');script.src = sources[index];script.onload = () => console.log(`成功加載: ${sources[index]}`);script.onerror = () => loadWithFallback(sources, index + 1);document.head.appendChild(script);
}loadWithFallback(cdnSources);

七、總結

jsDelivr作為一個優秀的免費CDN服務,為全球開發者提供了強大的靜態資源分發能力。通過本文的詳細介紹,您應該能夠:

(一)核心收獲

  1. 理解jsDelivr:掌握jsDelivr的基本概念和工作原理
  2. 熟練使用:能夠正確配置和使用各種jsDelivr服務
  3. 性能優化:通過CDN顯著提升網站訪問速度
  4. 最佳實踐:遵循安全和性能的最佳實踐

(二)應用場景

1. 個人項目

  • 博客圖床:GitHub + jsDelivr的完美組合
  • 靜態網站:加速CSS、JS等靜態資源
  • 開源項目:為項目提供可靠的CDN支持

2. 企業應用

  • 微前端:動態加載和分發微應用資源
  • 組件庫:企業級組件的CDN分發
  • 文檔站點:技術文檔的資源優化

(三)發展趨勢

隨著Web技術的不斷發展,CDN服務也在持續演進:

  1. 邊緣計算:更靠近用戶的內容分發
  2. 智能優化:AI驅動的緩存和路由策略
  3. 安全增強:更強的內容安全和完整性保護
  4. 生態整合:與更多開發工具和平臺的深度集成

jsDelivr作為開源CDN的領導者,將繼續為開發者提供更好的服務。掌握jsDelivr的使用,不僅能提升項目性能,更是現代Web開發的必備技能。

記住,好的CDN服務配合正確的使用方法,才能發揮最大的價值。希望本文能幫助您更好地使用jsDelivr,提升您的Web項目性能!

參考資料

  • jsDelivr官方網站
  • jsDelivr GitHub倉庫
  • jsDelivr API文檔
  • CDN最佳實踐指南

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93906.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OSPF筆記整理

一、OSPF 基礎特性1. 技術背景&#xff08;對比 RIP&#xff09;RIP 的缺陷&#xff1a;最大跳數 15 限制、周期性發送全路由表&#xff08;占用帶寬&#xff09;、收斂慢、以跳數為度量值、易產生環路、30 秒更新間隔。OSPF 的改進&#xff1a;無跳數限制&#xff08;支持大規…

sqLite 數據庫 (3):以編程方式使用 sqLite,4 個函數,以及 sqLite 移植,合并編譯

&#xff08;22&#xff09; 只有四個函數 &#xff1a;以及 &#xff1a;&#xff08;23&#xff09;以及 &#xff1a;&#xff08;24&#xff09;&#xff08;25&#xff09; sqLite 的源代碼很少 &#xff1a;&#xff08;26&#xff09;&#xff08;27&#xff09;&#x…

Nginx跨域問題與 MIME 類型錯誤深度排錯指南:解決 MIME type of “application/octet-stream“ 報錯

前言&#xff1a;在 Web 開發中&#xff0c;跨域請求和資源加載錯誤是前端工程師和運維人員經常遇到的棘手問題。本文將詳細解析 Nginx 環境下跨域配置的多種方案、gzip 類型參數的優化要點&#xff0c;以及.mjs 文件 MIME 類型錯誤的解決方法&#xff0c;并結合排錯思路和原理…

什么是大端?什么是小端?如何驗證?

什么是大端&#xff1f;什么是小端&#xff1f;如何驗證&#xff1f; 在計算機系統中&#xff0c;大端&#xff08;Big-Endian&#xff09; 和小端&#xff08;Little-Endian&#xff09; 是兩種不同的字節序&#xff08;Byte Order&#xff09;&#xff0c;用于描述多字節數據…

JavaScript 語句和函數

1. JavaScript 語句 1&#xff09;if語句 if (condition) statement1 else statement2這里的條件&#xff08;condition&#xff09;可以是任何表達式&#xff0c;并且求值結果不一定是布爾值。 ECMAScript會自動調用Boolean()函數將這個表達式的值轉換為布爾值。 如果條件…

代碼隨想錄刷題Day22

替換數字 這道題比較簡單&#xff0c;遇到字母就copy到新的字符數組&#xff0c;如果是遇到數字&#xff0c;就在新字符數組中加入number的字符串。代碼如下&#xff1a; #include<stdio.h> #include<ctype.h> #include<string.h> #define Max 1000000 int…

邏輯回歸參數調優實戰指南

邏輯回歸的參數調節參數展示 LogisticRegression(penaltyl2,dualFalse,tol1e4,C1.0,fit_interceptTrue,intercept_scaling1,class_weightNone,random_stateNone,solverliblinear,max_iter100,multi_classovr,verbose0,warm_startFalse, n_jobs1)在前面的學習中&#xff0c;我們…

cocosCreator2.4 googlePlay登錄升級、API 35、16KB內存頁面的支持

環境&#xff1a;我這里是cocosCreator 2.4.12 導出的android 工程 登錄升級 后臺收到的google 的提醒&#xff1a; 之前是通過implementation com.google.android.gms:play-services-auth:20.0.0 來獲取玩家 uid 和 郵箱&#xff0c;然后發送到我們的服務器獲取賬號。 升級…

unity avpro實現互動影游關鍵問題

創建視頻播放器?在Hierarchy面板中右鍵創建&#xff1a;Video > AVPro Video - MediaPlayer創建后會生成一個MediaPlayer對象&#xff0c;用于控制視頻播放添加視頻資源將視頻文件放入項目的StreamingAssets文件夾下在MediaPlayer組件的設置中選擇要播放的視頻文件在UI上顯…

【C找第一個只出現一次的字符】2022-8-18

緣由樣例通過&#xff0c;請問為什么錯了呢&#xff1f;(語言-c語言)-編程語言-CSDN問答 char str[100000];fgets(str, 100000, stdin);int a[26]{}, i, count 0;int len strlen(str);for (i 0; i<len; i) a[str[i] - a];for (i 0; i<len; i){if (a[str[i] - a] 1){…

MCP AI應用通信的底層機制

技術小館專注AI與Java領域的前沿技術知識庫 技術小館官網 在AI應用快速發展的今天&#xff0c;不同AI系統之間的高效通信成為技術架構的關鍵挑戰。MCP&#xff08;Model Context Protocol&#xff09;作為新一代AI應用通信協議&#xff0c;正在重新定義AI工具生態的構建方式。…

UI測試平臺TestComplete如何實現從Git到Jenkins的持續測試

還在為手動做UI測試又慢又累發愁&#xff1f;更頭痛的是&#xff0c;代碼改完還得等半天才能測&#xff0c;測完了結果又散得到處都是&#xff0c;根本看不清質量全貌?TestComplete幫你搞定&#xff1a;直接連上你的Git倉庫&#xff0c;代碼一有動靜就能感知。接著&#xff0c…

【Debian】4-?2 Gitea搭建

【Debian】4-?2 Gitea搭建一、準備工作二、創建 Gitea 用戶&#xff08;推薦&#xff09;三、下載并安裝 Gitea四、配置Gitea4-1 創建目錄結構4-2 創建配置目錄五、配置 Systemd 服務六、訪問 Gitea Web 界面七、小插曲一、準備工作 更新系統軟件為最新 sudo apt update &am…

【CDH × Docker】一次測試部署,N 次復用的環境鏡像方案

&#x1f680; 一次測試環境的探索&#xff1a;我如何將 CDH 集群打包成 Docker 鏡像&#xff0c;留給未來的自己 &#x1f9e9; 背景故事 最近在項目中&#xff0c;我們計劃上線一個基于 CDH&#xff08;Cloudera Distribution Hadoop&#xff09; 的大數據平臺。正式上生產環…

Java 日期時間格式化模式說明

Java 中日期時間格式化使用特定的模式字符串來定義輸出格式。以下是常見的格式化符號及其含義&#xff0c;適用于 SimpleDateFormat 和 DateTimeFormatter一、日期部分格式化符號符號含義示例y年 (Year)yyyy → 2023M月 (Month)MM → 09, MMM → Sep, MMMM → Septemberd月中的…

代碼隨想錄算法訓練營三十三天|動態規劃part06

LeetCode 322 零錢兌換 題目鏈接&#xff1a;322. 零錢兌換 - 力扣&#xff08;LeetCode&#xff09; 給你一個整數數組 coins &#xff0c;表示不同面額的硬幣&#xff1b;以及一個整數 amount &#xff0c;表示總金額。 計算并返回可以湊成總金額所需的 最少的硬幣個數 。…

【大模型LLM】大模型訓練加速 - 梯度累積(Gradient Accumulation)原理詳解

梯度累積&#xff08;Gradient Accumulation&#xff09;原理詳解 梯度累積是一種在深度學習訓練中常用的技術&#xff0c;特別適用于顯存有限但希望使用較大批量大小&#xff08;batch size&#xff09;的情況。通過梯度累積&#xff0c;可以在不增加單個批次大小的情況下模擬…

【數據分享】各省文旅融合耦合協調度及原始數據(2012-2022)

數據介紹引言 文旅融合是推動區域經濟高質量發展、促進共同富裕的重要路徑。黨的二十大報告明確提出“推進文化和旅游深度融合發展”的戰略目標&#xff0c;文旅產業通過資源整合與業態創新&#xff0c;可顯著縮小城鄉、區域差距&#xff0c;提升物質與精神雙重福祉&#xff08…

Linux編程: 10、線程池與初識網絡編程

今天我計劃通過一個小型項目&#xff0c;系統講解線程池與網絡編程的核心原理及實踐。項目將圍繞 “利用線程池實現高并發網絡通信” 這一核心需求展開&#xff0c;具體設計如下&#xff1a; 為保證線程安全&#xff0c;線程池采用單例模式設計&#xff0c;確保全局唯一實例避…

藏云閣 Logo 庫(開源項目SVG/PNG高清Logo)

在日常技術方案設計、架構圖繪制或PPT制作中&#xff0c;常常會遇到一些問題&#xff0c;比如&#xff1a; 找不到統一風格的開源項目組件圖標&#xff0c;PPT中的logo五花八門下載的圖標分辨率不足&#xff0c;放大后模糊失真不同來源的圖標顏色風格沖突&#xff0c;破壞整體…