還在為沒機器練手搭集群而苦惱?快進來免費領機器了!

来源:https://www.cnblogs.com/didispace/archive/2023/10/10/17754818.html
-Advertisement-
Play Games

前幾天,在我們的技術交流群里看到有小伙伴問:有沒有練手搭建Redis集群的方式推薦: 這裡不禁讓我想到,對於各種集群和分散式基礎設施的搭建,其實是每個開發者進階時候都要經歷的一個成長過程。但是,這裡對於不少開發者來說,卻又面臨著一個現實問題:我沒有足夠的資源(主機或配置)去嘗試和練習。 最近,DD剛 ...


前幾天,在我們的技術交流群里看到有小伙伴問:有沒有練手搭建Redis集群的方式推薦:

這裡不禁讓我想到,對於各種集群和分散式基礎設施的搭建,其實是每個開發者進階時候都要經歷的一個成長過程。但是,這裡對於不少開發者來說,卻又面臨著一個現實問題:我沒有足夠的資源(主機或配置)去嘗試和練習

最近,DD剛好看到阿裡雲有個可以免費領機器的活動,還挺適合正在學習這方面技術內容的小伙伴來領取做練手資源的。

如何領取

這個免費領機器的機會,其實是阿裡雲ECS面向學生和個人開發者的免費試用活動。它的規則是每個月提供280元的抵扣額度(實例部分200元,公網流量80元),在此額度內,可在5個地域試用1-4台

劃重點!!!這次的免費試用跟以前不一樣了,是可以領多台的!

所以,我們只需要在免費額度之內,選擇儘可能多的機器,就能滿足我們練習搭建各種集群的需求了。

領取入口https://click.aliyun.com/m/1000380445/

進入免費試用頁面之後,按如圖操作:

當然了,如果你不是想要搭建集群練手的話,也可以選擇其他配置,只要符合控制每個月ECS的費用在200元、公網費用80元以內,就可以免費使用。

另外,這裡告訴大家一個小秘籍:那就是不用的時候開啟停機模式!!!能省則省,榨乾每一分額度 _

練手推薦

如果您還是學生,或者平時參與的項目架構沒那麼複雜,不知道現階段有哪些東西可以去學習,或者不知道應該按什麼順序去練手。那麼,DD這裡給大家一些建議,您可以跟著我下麵的思路來嘗試一下,這些內容都是後端開發推薦掌握的必備技能。

下麵推薦的內容,我將以一個應用演進式發展的角度,來給大家梳理要學習的內容順序,也讓大家瞭解到每個技術的基本應用場景和引入時機。大家可以根據自己的情況選擇性的去選擇內容練手。

從0到1階段

通常來說,從0到1階段,作為一個初創應用,沒有什麼處理上的壓力,所以往往架構是非常簡單的。一臺伺服器 + 一臺資料庫,基本就搞定了。如果你從來沒有過這個體驗,那麼可以嘗試一下下麵的部署架構:

  • 一臺機器搭建Nginx
  • 兩台台機器部署應用(雙實例)
  • 一臺機器部署資料庫。

這裡一個關鍵點在於Nginx的負載均衡配置,實現一個基礎且有一定高可用雛形的部署架構。得益於兩台伺服器部署應用,又有Nginx做負載均衡,還能實現滾動發佈,上線升級不影響用戶使用。

從1到100階段

如果發展順利,用戶增長還不錯,那麼你們在做的產品需要進一波推廣了。此時往往會碰到兩個問題:

一個是應用伺服器的負載增大,需要擴容應對更多請求。這個可以通過增加應用部署,配合Nginx負載均衡來擴容,如果你沒有像從0到1階段的那種結構來部署的話,這個時候這一步就一定要補上了。

其次,影響性能處理最大的瓶頸大概率出現在資料庫。所以,很多時候,我們將在這個階段引入資料庫的一些高級用法,比如:

  • 一主多從集群:通過一主多從結構,實現讀寫分離,用更多的機器來分攤資料庫的負載。
  • 多主多從集群:通過多主多從結構,將業務數據分庫處理。配合一些分庫框架和中間件,實現更大量級的數據存儲需求。

從100到10000階段

隨著業務的繼續加速發展,數據訪問層面的壓力會越來越大。這個時候,我們往往都會開始引入緩存系統,來加速用戶請求的響應。減少熱點數據頻繁的訪問資料庫,減少資料庫的負載。所以,這個時候Redis往往就要登場了。緩存作為一個重要中間件,在上線的時候集群化部署肯定是需要的,所以下麵這些,也建議大家可以嘗試一下:

  • 主從模式:主從模式是Redis三種集群模式中最簡單的,在主從複製中,資料庫分為兩類:主資料庫(master)和從資料庫(slave)。其中,主從複製有如下特點:
    • 主資料庫可以進行讀寫操作,當讀寫操作導致數據變化時會自動將數據同步給從資料庫;
    • 從資料庫一般是只讀的,並且接收主資料庫同步過來的數據;
    • 一個master可以擁有多個slave,但是一個slave只能對應一個master;
    • slave掛了不影響其他slave的讀和master的讀和寫,重新啟動後會將數據從master同步過來;
    • master掛了以後,不影響slave的讀,但redis不再提供寫服務,master重啟後redis將重新對外提供寫服務;
    • master掛了以後,不會在slave節點中重新選一個master;
  • 哨兵模式:主從模式的弊端就是不具備高可用性,當master掛掉以後,Redis將不能再對外提供寫入操作,因此sentinel模式應運而生。sentinel中文含義為哨兵,顧名思義,它的作用就是監控redis集群的運行狀況,此模式具有如下一些特點:
    • sentinel模式是建立在主從模式的基礎上,如果只有一個Redis節點,sentinel就沒有任何意義;
    • 當master掛了以後,sentinel會在slave中選擇一個做為master,並修改它們的配置文件,其他slave的配置文件也會被修改,比如slaveof屬性會指向新的master;
    • 當master重新啟動後,它將不再是master,而是做為slave接收新的master的同步數據;
    • sentinel因為也是一個進程,所以有掛掉的可能,所以sentinel也會啟動多個形成一個sentinel集群;
    • 多sentinel配置的時候,sentinel之間也會自動監控;
    • 當主從模式配置密碼時,sentinel也會同步將配置信息修改到配置文件中;
    • 一個sentinel或sentinel集群可以管理多個主從Redis,多個sentinel也可以監控同一個redis;
    • sentinel最好不要和Redis部署在同一臺機器,不然Redis的伺服器掛了以後,sentinel也可能會掛掉。
  • 集群模式:Redis的哨兵模式基本已經可以實現高可用,讀寫分離 ,但是在這種模式下每台 Redis 伺服器都存儲相同的數據,很浪費記憶體,所以在 redis3.0上加入了Cluster 集群模式,實現了 Redis 的分散式存儲,也就是說每台 Redis 節點上存儲不同的內容。下麵是Cluster 集群模式的一些特點:
    • Sentinel模式基本可以滿足一般生產的需求,具備高可用性。但是當數據量過大到一臺伺服器存放不下的情況時,主從模式或sentinel模式就不能滿足需求了,這個時候需要對存儲的數據進行分片,將數據存儲到多個Redis實例中。cluster模式的出現就是為瞭解決單機Redis容量有限的問題,將Redis的數據根據一定的規則分配到多台機器。
    • Cluster可以說是sentinel+主從模式的結合體,通過cluster可以實現主從和master重選功能,所以如果配置兩個副本三個分片的話,就需要六個Redis實例。因為Redis的數據是根據一定規則分配到cluster的不同機器的,當數據量過大時,可以新增機器進行擴容。
    • 使用集群,只需要將redis配置文件中的cluster-enable配置打開即可,每個集群中至少需要三個主資料庫才能正常運行,新增節點非常方便。

野蠻發展階段

接下來,如果業務發展一切順利。這個時候,數據越來越多,業務需求也越來越多,參與的開發人員也越來越多。這個時候,上面的架構已經很難滿足各類需求的快速迭代。於是又將引入各種有用的東西。所以,下麵的東西也一樣推薦掌握。

數據異構

現在的資料庫世界,是一個百花齊放的階段。沒有一個資料庫可以完美的解決所有問題,所以隨著業務的發展,我們往往都需要引入各種不同的資料庫來解決不同的業務需求。比如:引入Elasticsearch來解決搜索,引入InfluxDB解決時序類的統計等等。所以,對這方面感興趣的話,可以嘗試一下:

基礎設施

隨著團隊的壯大,服務和系統越來越多。運維壓力就會很大,所以一些分散式、微服務治理的工具也都可以引入來簡化開發和運維。對這方面感興趣的讀者,也可以玩一下下麵的搭建:

隨著服務和系統的增多,它們之間的通信有不少場景是不需要同步實現的。很多時候,系統間通過非同步來實現會更加可靠。所以,消息中間件的引入也是必須的。目前最常用的有下麵這些,如果您沒有練過手,也是非常推薦要掌握一下的:

上面DD主要介紹了一些我接觸過的比較常用的內容。特定的業務還會有很多技術組件引入,如果上面沒有包含的話,您也可以前往阿裡雲開發者社區搜索文章來嘗試練手。如果您有什麼集群搭建的內容推薦,也歡迎留言區補充~

歡迎關註我的公眾號:程式猿DD。第一時間瞭解前沿行業消息、分享深度技術乾貨、獲取優質學習資源


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • C源程式需要經過預處理、編譯、彙編幾個階段,得到各自源文件對應的可重定位目標文件,可重定位目標文件就是各個源文件的二進位機器代碼,一般是.o格式。比如:util1.c、util2.c及main.c三個C源文件,經過預處理器、編譯器、彙編器的處理,就可以得到各自的目標文件util1.o,util2.o ...
  • 案例一 20萬的項目,已經花了六十萬了,客戶突然又新提要求做一套百度的搜索系統,我尿了,一頓冥思苦想,然後做了一個搜索頁面,把幾百張表的每個欄位都like一遍在搜索頁面輸入的查詢內容,一次搜索要半小時才出結果,再告訴客戶百度能秒出結果是因為他們有一套幾十億的超級電腦,咱只有一臺不到十個大不溜的服務 ...
  • 組合,反射,魔術方法 組合 反射 魔術方法 組合 什麼是組合? 組合就是,一個對象擁有一個屬性,該屬性的值是另外一個對象. """什麼場景下使用繼承? 什麼場景下使用組合?""" 繼承一般情況用在:什麼是什麼的情況 is 組合一般用在:什麼有什麼的情況 has class Foo: def __in ...
  • 作者:張富春(ahfuzhang),轉載時請註明作者和引用鏈接,謝謝! cnblogs博客 zhihu Github 公眾號:一本正經的瞎扯 接上一篇:http 中使用 gzip 輸出內容時,如何預先壓縮前一半頁面? 經過實測,對線上一個輸出 html 的服務進行了改造,通過預先壓縮頁面前半部分的方 ...
  • 觀察者模式 一、Java觀察者模式 Java觀察者模式是一種設計模式,用於實現對象之間的一對多依賴關係。在觀察者模式中,當一個對象的狀態發生變化時,它的所有依賴對象(觀察者)都會自動收到通知併進行相應的更新。 觀察者模式由以下幾個核心組件組成: 主題(Subject):也稱為被觀察者或可觀察對象,它 ...
  • 一、案例描述 若依官網文檔地址:http://doc.ruoyi.vip/ruoyi/document/hjbs.html 本教程主要內容,自定義資料庫表,使用若依開源系統生成代碼並配置許可權。 若依環境配置 新建數據表t_user,利用若依代碼生成工具生成服務端及頁面代碼。 菜單配置 許可權配置 二、 ...
  • 從PDF中提取內容能幫助我們獲取文件中的信息,以便進行進一步的分析和處理。此外,在遇到類似項目時,提取出來的文本或圖片也能再次利用。要在Python中通過代碼提取PDF文件中的文本和圖片,可以使用 Spire.PDF for Python 這個第三方庫。具體操作方法查閱下文。 Python 提取PD ...
  • 1、連接數據,但是順序會受影響 在使用JOIN連接臨時表或子查詢時,無法保證結果的順序與特定值的順序完全一致。這是因為在查詢過程中,資料庫優化器可能會選擇不同的執行計劃,導致結果的順序發生變化。 SELECT TABLE_NAME.* FROM TABLE_NAME JOIN ( SELECT 'A ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...