阿里云——云存儲與數據庫服務


云存儲與數據庫服務

數據是數字時代的新石油,而存儲與數據庫服務就是保存和提煉這些石油的“油庫與煉油廠”。阿里云提供了從對象、塊、文件存儲到關系型、NoSQL、數據倉庫的全方位數據服務。本章將幫你構建一套清晰的數據存儲選型框架,并掌握核心服務的使用。

5.1 對象存儲(OSS):海量非結構化數據的家

對象存儲(OSS, Object Storage Service) 是一種海量、安全、高可靠、低成本的云存儲服務,適合存放任意類型的非結構化數據,如圖片、視頻、文檔、備份、日志文件等。

核心概念

  • 存儲空間(Bucket):文件的命名空間,相當于頂層文件夾。名字全局唯一。
  • 對象(Object):OSS存儲的基本單元,即一個個文件。由Key(文件名)、Data(數據本身)和MetaData(元信息)組成。
  • 地域(Region):Bucket創建時需選擇地域,數據默認存儲在該地域。
  • 訪問域名(Endpoint):訪問Bucket的網絡地址。

核心特性與適用場景

  • 無限容量與高持久性:設計耐久性高達99.9999999999%(12個9),無需擔心數據丟失。適用于備份歸檔、靜態資源存儲。
  • 高并發與帶寬:支持海量客戶端同時讀寫,無需擔心帶寬瓶頸。適用于用戶上傳內容(UGC)、圖片視頻分享網站。
  • 低成本分級存儲:提供標準、低頻訪問(IA)、歸檔、冷歸檔四種存儲類型,價格逐級遞減,訪問速度也逐級變慢。可根據數據訪問頻率選擇,優化成本。
    • 標準:熱數據,頻繁訪問。
    • 低頻IA:數據較少訪問,但需要實時讀取。
    • 歸檔/冷歸檔:冷數據,基本不訪問,讀取需要先解凍(耗時幾分鐘到小時級),適合合規性存儲、長期備份。

OSS的核心價值在于解耦。將應用中的靜態資源(JS/CSS/圖片)分離到OSS,并通過CDN加速,能極大減輕Web/App服務器的負載,提升全球訪問速度,是現代化應用架構的標配。

5.2 塊存儲與文件存儲:為ECS提供持久化存儲

塊存儲和文件存儲為計算服務提供塊級文件級的持久化存儲。

  • 塊存儲(Block Storage)

    • 是什么:一種裸磁盤空間,需要掛載到ECS實例后,由實例的操作系統進行分區、格式化(如ext4, NTFS)后才能使用。
    • 特點:低延遲、高性能、可隨機讀寫。一塊云盤只能掛載到同一可用區的一臺ECS實例上
    • 類型
      • ESSD:基于NVMe SSD,性能極強(最高100萬IOPS),適用于核心業務、高性能數據庫。
      • SSD云盤:高性能SSD盤,性價比高,適用于一般業務系統。
      • 高效云盤:基于SATA HDD,適合中小型數據庫、開發測試環境。
    • 用途:為ECS實例提供系統盤和數據盤,存放需要直接讀寫磁盤塊的應用,如數據庫。
  • 文件存儲(NAS, Network Attached Storage)

    • 是什么:一種可共享的、支持多種協議(NFS/SMB)的文件存儲服務。像一個共享網絡文件夾。
    • 特點多個ECS實例(甚至跨可用區)可以同時讀寫同一份文件。容量彈性伸縮,無需預置。
    • 用途內容管理、共享工作目錄、日志共享等需要多實例共享訪問同一文件集的場景。例如,Web集群共享用戶上傳目錄,容器集群掛載共享配置文件。
特性塊存儲 (云盤)文件存儲 (NAS)
訪問協議塊設備 (SATA, SCSI, NVMe)文件協議 (NFS, SMB)
連接性單ECS實例(同可用區)多ECS實例/容器(同VPC)
典型用例數據庫、操作系統共享目錄、CI/CD共享、企業文件共享
5.3 數據庫選型指南:關系型 vs NoSQL vs 數據倉庫

數據庫是應用的核心,選型失誤將帶來巨大的后期改造成本。以下是三大類數據庫的選型框架:

  1. 關系型數據庫 (RDS)

    • 數據模型:基于表格,結構固定,遵循Schema。
    • 查詢語言:SQL。
    • 優勢事務ACID特性(原子性、一致性、隔離性、持久性)、強一致性、強大的聯表查詢。
    • 場景:需要強一致性事務的核心業務系統,如訂單、交易、用戶賬戶管理系統。
  2. NoSQL 數據庫

    • 數據模型:非表格,結構靈活。
    • 查詢語言:非SQL,各有自己的API。
    • 優勢高性能、高擴展性、靈活的數據模型
    • 分類與場景
      • 鍵值存儲 (Key-Value):如 Redis。緩存、會話存儲、排行榜。
      • 文檔存儲 (Document):如 MongoDB。內容管理系統(CMS)、產品目錄、用戶配置文件。
      • 列式存儲 (Wide-Column):如 HBase。物聯網(IoT)、時序數據。
      • 搜索存儲 (Search):如 Elasticsearch。日志分析、全文搜索。
  3. 數據倉庫 (Data Warehouse)

    • 代表:MaxCompute, AnalyticDB (ADB)。
    • 特點專為復雜分析查詢(OLAP)設計,海量數據(PB級)處理能力。
    • 場景:商業智能(BI)報表、數據分析和挖掘。

現代應用往往是多模數據庫(Multi-Model) 架構。不要試圖用一個數據庫解決所有問題。例如,核心交易用RDS,緩存用Redis,全文檢索用Elasticsearch,海量分析用MaxCompute。

5.4 云原生數據庫:RDS (MySQL) 核心功能

阿里云關系型數據庫服務(RDS)是一種穩定可靠、可彈性伸縮的在線數據庫服務。它免去了數據庫安裝、硬件投入、故障恢復等復雜操作。

以最常用的RDS MySQL為例,其核心優勢遠超一臺自建MySQLECS實例:

  • 高可用性:默認提供主備架構(一主一備,跨可用區部署),自動故障切換,業務無感知。
  • 讀寫分離:只需一鍵開啟,即可自動創建一個或多個只讀實例,通過一個獨享的讀寫分離地址,自動將寫請求發往主實例,讀請求發往只讀實例,輕松應對高并發讀場景。
  • 自動備份:支持數據備份和日志備份,可設置備份策略,并支持按時間點恢復(恢復到任意秒級)。
  • 性能優化:提供參數優化建議、SQL審計和優化、慢查詢分析等功能。
  • 白屏化管理:監控告警、賬號管理、數據庫升降配、版本升級等操作均可在線完成,極大簡化DBA工作。
5.5 NoSQL之王:Redis版與MongoDB版的應用場景

阿里云提供了完全兼容開源協議的托管式NoSQL服務,讓你無需管理數據庫服務器。

  • Tair/Redis版

    • 場景緩存(降低數據庫壓力,提升響應速度)、會話存儲(分布式Session)、排行榜秒殺
    • 阿里云增強:提供持久內存機型(性價比極高)、集群版(海量數據與高性能)、讀寫分離版(超高讀性能)。
  • MongoDB版

    • 場景內容管理系統游戲用戶檔案物聯網(存儲設備狀態信息)。
    • 阿里云增強:提供三節點副本集(默認高可用)和分片集群(水平擴展)架構。
實戰演練:構建一個讀寫分離的Web應用(ECS + RDS + OSS)

讓我們綜合本章知識,構建一個比第一章更健壯、性能更高的Web應用。

目標

  1. Web服務器(ECS)無狀態,便于水平擴展。
  2. 用戶上傳的圖片、附件等靜態資源存入OSS,減輕服務器負載。
  3. 數據庫使用RDS,并配置讀寫分離,提升讀性能。
  4. 通過SLB對外提供服務,實現高可用。

步驟一:創建RDS MySQL實例并初始化

  1. 在RDS控制臺創建MySQL實例。
  2. 網絡類型:選擇之前創建的prod-vpcdata-vswitch-zonec(數據層子網)。
  3. 系列:選擇高可用版(一主一備)。
  4. 設置數據庫管理員賬號和密碼。
  5. 創建成功后,在“數據庫連接”中申請內外網連接地址(內網地址用于ECS訪問,外網地址用于本地臨時管理)。
  6. 通過DMS或MySQL客戶端登錄,創建一個名為web_db的數據庫。

步驟二:創建OSS Bucket

  1. 在OSS控制臺創建一個Bucket,例如web-app-static-<你的賬號ID>
  2. 地域:選擇與ECS/RDS相同的地域。
  3. 存儲類型:標準。
  4. 讀寫權限:私有(推薦,用戶通過API簽名或臨時Token訪問,更安全)。

步驟三:部署并配置Web應用

  1. 創建一臺ECS實例,部署在web-vswitch-zonea中。
  2. 在Web應用(如WordPress)的配置文件中(如wp-config.php),修改數據庫連接設置:
    • 數據庫主機:填寫RDS實例的內網地址(至關重要!通過內網訪問,延遲低且免費)。
    • 使用之前創建的數據庫名、用戶名和密碼。
  3. 安裝并配置OSS的WordPress插件,將媒體庫的上傳目標設置為你的OSS Bucket。并在插件中配置具有OSS訪問權限的RAM角色的AccessKey(參考第2章實戰)。

步驟四:配置RDS讀寫分離

  1. 在RDS控制臺,目標實例的“數據庫代理”中,開通數據庫代理功能。
  2. 創建一個讀寫分離地址。該地址會自動實現讀寫分離。
  3. 在Web應用中,配置兩個數據庫連接
    • 寫連接:指向RDS主實例的內網地址(用于寫操作)。
    • 讀連接:指向RDS的讀寫分離地址(用于讀操作)。
    • (許多現代框架,如Laravel,已支持在配置中直接定義讀/寫連接。)

步驟五:通過SLB訪問

  1. 創建一個應用型負載均衡(ALB),監聽80端口,并將上述ECS實例添加到后端服務器組。
  2. 將域名解析到ALB的公網IP上。
  3. 現在,用戶訪問網站時,圖片等靜態資源從OSS高速下載,數據庫讀請求被自動分發到只讀實例,寫請求發往主實例,整個系統的性能和可用性得到了極大提升。

通過本章,不僅了解了各種存儲和數據庫服務,更掌握了如何將它們有機地組合起來,構建一個專業、健壯的應用架構。

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

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

相關文章

瀏覽器網頁路徑掃描器(腳本)

使用網頁路徑掃描器可以掃描網頁的路徑&#xff0c;一些工具如ffuf為在命令行上操作&#xff0c;比較不便&#xff0c;而其他資源不好找到 Website path scanner(Script-tampermonkey) 腳本發布在GitHub&#xff0c;本文章也關聯文件資源 GitHub:Website path scanner(Script-…

實戰原型模式案例

作者&#xff1a;小凱 分享、讓自己和他人都能有所收獲&#xff01;&#x1f604; 一、前言 老板你加錢我的代碼能飛 程序員這份工作里有兩種人&#xff1b;一類是熱愛喜歡的、一類是僅當成工作的。而喜歡代碼編程的這部分人會極其主動學習去豐富自己的羽翼&#xff0c;也非常喜…

微信小程序餐飲掃碼點餐小程序堂食外賣桌臺自助下單源碼

功能說明&#xff1a;商家助手APP、接單更方便前端頁面模版隨意挑選&#xff0c;可diy精裝設計線下買單餐桌點餐快速下單會員管理訂單管理優惠券核銷叫號取餐排隊叫號商品管理桌位管理數據統計售后訂單配送設置推廣碼硬件設備一、技術架構&#xff1a;PHPUniApp構建高性價比系統…

Linux應用軟件編程---網絡編程(TCP并發服務器構建:[ 多進程、多線程、select ])

TCP并發服務器構建一、服務器單循環服務器&#xff1a;服務端同一時刻只能處理一個客戶端的任務&#xff08;TCP&#xff09;并發服務器&#xff1a;服務端同一時刻可以處理多個客戶端的任務&#xff08;UDP&#xff09;二、TCP服務端并發模型1、多進程進程資源開銷大&#xff…

重構審計體驗!批量生成報表項目底稿的憑證檢查表

在審計工作中&#xff0c;我們通過序時賬或其他審計軟件篩選導出的憑證列表&#xff0c;要如何快速分發給各個報表項目底稿的憑證檢查表呢&#xff1f; “TB工具箱2025”正式上線“批量生成憑證表”的功能&#xff0c;通過一些巧妙的設計&#xff0c;使其具備高度的通用性&…

【c++進階系列】:萬字詳解二叉搜索樹(附源碼實現)

&#x1f525; 本文專欄&#xff1a;c &#x1f338;作者主頁&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客勵志語錄&#xff1a; 你可以走得慢&#xff0c;但別回頭 1.概念 二叉搜索樹&#xff0c;從其名字我們就能知道該數據結構是一個特殊的二叉樹&#xff0c;而二…

通過web服務做橫向移動

環境配置邊緣主機(win10)&#xff1a;192.168.237.140 10.10.90.128內網主機(win7)&#xff1a;10.10.90.129 web服務 -- upload-labs攻擊機&#xff1a;vps&#xff08;120.26.114.196&#xff09;windows10windows7假設已經拿下邊緣主機win10&#xff0c;vshell上線ipconfig查…

把CentOS 7默認yum源改成騰訊云鏡像

步驟計劃&#xff1a; 備份原有CentOS-Base.repo文件&#xff0c;防止配置出錯可恢復 下載騰訊云提供的CentOS 7鏡像源配置文件&#xff08;對應CentOS-Base.repo&#xff09; 清理并生成yum緩存&#xff0c;使新源生效 具體命令 # 備份原有源 sudo mv /etc/yum.repos.d/C…

歐盟《人工智能法案》生效一年主要實施進展概覽(二)

文章目錄前言三、《關于禁止的人工智能實踐指南》1. 整體適用2. 禁止的人工智能系統具體介紹&#xff08;1&#xff09;有害操縱和欺騙類及對脆弱性的有害利用類&#xff08;2&#xff09;社會評分類&#xff08;3&#xff09;個人刑事犯罪風險評估和預測類&#xff08;4&#…

私域電商新范式:開源AI智能名片鏈動2+1模式S2B2C商城小程序賦能傳統行業流量轉化

摘要&#xff1a;本文聚焦私域電商領域&#xff0c;指出其并非僅局限于快消品等傳統電商行業&#xff0c;多數傳統行業同樣面臨私域流量利用難題。傳統行業手握私域流量或優質流量入口&#xff0c;卻不知如何有效轉化&#xff0c;陷入流量焦慮。在此背景下&#xff0c;開源AI智…

Axios 整理常用形式及涉及的參數

一、axios get請求 //形如 axios.get(url[, config]).then(response > {// 處理響應}).catch(error > {// 處理錯誤}); //無 config 的情況下&#xff0c; axios.get(https://api.example.com/data).then(response > {// 處理響應}) .catch(error > {// 處理錯誤})…

深度學習---卷積神經網絡CNN

卷積神經網絡CNN&#xff08;Convolutional Neural Networks&#xff09;一、圖像原理圖像在計算機中是一堆按順序排列的數字&#xff0c;數值為0到255。0表示最暗&#xff0c;255表示最亮。上圖是只有黑白顏色的灰度圖&#xff0c;而更普遍的圖片表達方式是RGB顏色模型&#x…

日志輸出觸發的死鎖問題排查記錄

現象描述 錯誤日志&#xff1a; Found one Java-level deadlock:"http-nio-8083-exec-106":waiting for ownable synchronizer 0x00000005cbfa6b90, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),which is held by "http-nio-8083-exec-10" …

UNIX網絡編程筆記:高級套接字編程20-25

廣播通信&#xff1a;局域網內的高效信息傳播 在局域網通信場景中&#xff0c;廣播是一種高效的一對多信息傳播方式 。它無需為每個接收者單獨建立連接&#xff0c;能一次性將消息送達網段內所有目標&#xff0c;廣泛應用于服務發現、網絡通知等場景。以下從基礎原理到實踐應用…

React Native核心技術深度解析_Trip Footprints

React Native 框架詳細技術解析 作為前端開發者&#xff0c;理解React Native需要從Web開發的角度出發&#xff0c;了解其獨特之處和技術實現。 &#x1f3af; React Native 核心概念 什么是React Native&#xff1f; React Native是Facebook開發的跨平臺移動應用開發框架&…

預算管理的“數字圍欄“:如何用實時預警終結行政費用超支

作為公司行政主管&#xff0c;每年最讓我忐忑的時刻不是年終總結&#xff0c;而是季度財務分析會。當CFO皺著眉頭指出行政費用又超支時&#xff0c;那種如坐針氈的感覺至今難忘。行政預算就像一匹難以馴服的野馬&#xff0c;明明已經嚴加管控&#xff0c;卻總在年底給我們"…

NTLM哈希深度解析:從原理到安全實踐

NTLM哈希深度解析&#xff1a;從原理到安全實踐作為一名白帽子黑客&#xff0c;深入理解NTLM哈希機制對保障企業網絡安全至關重要。1. NTLM哈希概述 NTLM&#xff08;New Technology LAN Manager&#xff09;是微軟推出的一套身份驗證協議套件&#xff0c;用于在Windows網絡中驗…

4-3.Python 數據容器 - 集合 set(集合 set 概述、集合的定義、集合的遍歷、集合的常用方法)

集合 set 概述集合用于存儲一系列元素集合存儲的元素是無序的&#xff0c;不支持索引集合存儲的元素是不可以重復的集合存儲的元素可以是不同類型的&#xff0c;例如、數字、字符串、甚至是其他集合集合是可變的&#xff0c;在程序運行時可以添加、刪除其中的元素一、集合的定義…

驗證碼請求與緩存問題解決方案

驗證碼請求與緩存問題解決方案 1.問題描述 請求驗證碼圖片未變化&#xff0c;且未監聽到新請求的問題。 2.問題分析 這個問題的根本原因通常是瀏覽器緩存機制導致的 - 瀏覽器會緩存相同URL的圖片&#xff0c;導致第二次請求時直接從緩存讀取而不發送新請求。 3.解決方案思路 在…

安卓接入通義千問AI的實現記錄

官網&#xff1a;https://help.aliyun.com/zh/model-studio/use-qwen-by-calling-api#b1320a1664b9a 創建網絡請求 創建一個BaseNetworkApi基類用于實現各種攔截器等。 abstract class BaseNetworkApi {fun <T> getApi(serviceClass: Class<T>, baseUrl: String…