MySQL集群、Redis集群、RabbitMQ集群

一、MySQL集群

1、集群原理

????????MySQL-MMM 是 Master-Master Replication Manager for MySQL(mysql 主主復制管理器)的簡稱。腳本)。MMM 基于 MySQL Replication 做的擴展架構,主要用來監控 mysql 主主復制并做失敗轉移。其原理是將真實數據庫節點的 IP(RIP)映射為虛擬 IP(VIP)集。 mysql-mmm 的監管端會提供多個 虛擬 IP(VIP),包括一個可寫 VIP, 多個可讀 VIP,通過監管的管理,這些 IP 會綁定在可用 mysql 之上,當 某一臺 mysql 宕機時,監管會將 VIP 遷移至其他 mysql。在整個監管過 程中,需要在 mysql 中添加相關授權用戶,以便讓 mysql 可以支持監理機的維護。授權的用戶包括一個 mmm_monitor 用戶和一個 mmm_agent 用戶,如果想使用 mmm 的備份工具則還要添加一個 mmm_tools 用戶。

二、Redis集群

1、集群形式

1.1客戶端分區

????????

????????客戶端分區方案的代表為 Redis Sharding,Redis Sharding 是 Redis Cluster 出來之前,業 界普遍使用的 Redis 多實例集群方法。Java 的 Redis 客戶端驅動庫 Jedis,支持 Redis Sharding 功能,即 ShardedJedis 以及結合緩存池的 ShardedJedisPool。

????????優點

????????不使用第三方中間件,分區邏輯可控,配置簡單,節點之間無關聯,容易線性擴展,靈活性強。

????????缺點

????????客戶端無法動態增刪服務節點,客戶端需要自行維護分發邏輯,客戶端之間無連接共享, 會造成連接浪費。

1.2代理分區

2、高可用方式?

2.1、Sentinel( 哨兵機制)支持高可用

????????哨兵的作用就是監控 Redis 系統的運行狀況,哨兵機制可解決主從復制的主節點出問題后更新繁瑣的問題,使用集群可解決主節點讀寫能力有限的問題。其功能主要是包括以下三個:

????????監控(Monitoring): 哨兵(sentinel) 會不斷地檢查你的 Master 和 Slave 是否運作正常。

????????提醒(Notification): 當被監控的某個 Redis 出現問題時, 哨兵(sentinel) 可以通過 API 向管理員或者其他應用程序發送通知。

????????自動故障遷移(Automatic failover): 當主數據庫出現故障時自動將從數據庫轉換為主數據庫。

哨兵的原理

????????Redis 哨兵的三個定時任務,Redis 哨兵判定一個 Redis 節點故障不可達主要就是通過三個定 時監控任務來完成的:

? ? ? ? 1、每隔 10 秒每個哨兵節點會向主節點和從節點發送"info replication" 命令來獲取最新的拓撲結構。

? ? ? ? 2、每隔 2 秒每個哨兵節點會向 Redis 節點的_sentinel_:hello 頻道發送自己對主節點是否故 障的判斷以及自身的節點信息,并且其他的哨兵節點也會訂閱這個頻道來了解其他哨兵節點的信息以及對主節點的判斷。

? ? ? ? 3、每隔 1 秒每個哨兵會向主節點、從節點、其他的哨兵節點發送一個 “ping” 命令來做心 跳檢測。

? ? ? ? 如果定時任務3監測不到節點的心跳,會判斷“主觀下線”,如果該節點是主節點那么會通知其他哨兵對該主節點進行心跳檢測,如果主觀下線的票數大于設置值,則認為此主節點故障,成為客觀下線。

????????故障轉移和 Leader 選舉

????????如果主節點被判定為客觀下線之后,就要選取一個哨兵節點來完成后面的故障轉移工作,選 舉出一個 leader,這里面采用的選舉算法為 Raft。選舉出來的哨兵 leader 就要來完成故障轉移工作,也就是在從節點中選出一個節點來當新的主節點。

3、Redis-Cluster

? ? ? ? 官方多機部署方案,。一組 Redis Cluster 是由多個 Redis 實例組成,推薦使用 6 實例,其中 3 個為主節點,3 個為從結點。一旦有主節點發生故障的時候, Redis Cluster 可以選舉出對應的從結點成為新的主節點,繼續對外服務,從而保證服務的高可用性。Redis Cluster 把所有的數據劃分為 16384 個不同的槽位,可以根據機器的性能把不同的槽位分配給不同的 Redis 實例,對于 Redis 實例來說,他們只會存儲部分的 Redis 數據,槽的數據是可以遷移的,不同的實例之間,可以通過一定的協議進行數據遷移。

????????一致性哈希可以很好的解決穩定性問題,可以將所有的存儲節點排列在收尾相接的 Hash 環上,每個 key 在計算 Hash 后會順時針找到臨接的存儲節點存放。而當有節點加入或退出時,僅影響該節點在 Hash 環上順時針相鄰的后續節點。

????????Hash傾斜:如果節點很少,容易出現傾斜,負載不均衡問題。一致性哈希算法,引入了虛擬節點,在整個環上,均衡增加若干個節點。

三、RabbitMQ集群

????????RabbitMQ 集群中節點包括內存節點(RAM)、磁盤節點(Disk,消息持久化),集群中至少有 一個 Disk 節點。

普通模式(默認)

????????對于普通模式,集群中各節點有相同的隊列結構,但消息只會存在于集群中的一個節點。對于消費者來說,若消息進入 A 節點的 Queue 中,當從 B 節點拉取時,RabbitMQ 會將消息從 A 中取出,并經過 B 發送給消費者。 應用場景:該模式各適合于消息無需持久化的場合,如日志隊列。當隊列非持久化,且 創建該隊列的節點宕機,客戶端才可以重連集群其他節點,并重新創建隊列。若為持久化, 只能等故障節點恢復。

鏡像模式

????????與普通模式不同之處是消息實體會主動在鏡像節點間同步,而不是在取數據時臨時拉取,高可用;該模式下,mirror queue 有一套選舉算法,即 1 個 master、n 個 slaver,生產者、消費者的請求都會轉至 master。

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

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

相關文章

環境變量在Gradle中的妙用:構建自動化的秘訣

環境變量在Gradle中的妙用:構建自動化的秘訣 在構建自動化的過程中,環境變量扮演著至關重要的角色。它們允許開發者根據不同的運行環境(如開發、測試和生產環境)來調整配置,而無需修改代碼。Gradle,作為一…

基于Faster R-CNN的安全帽目標檢測

基于Faster R-CNN的安全帽目標檢測項目通常旨在解決工作場所,特別是建筑工地的安全監管問題。這類項目使用計算機視覺技術,特別是深度學習中的Faster R-CNN算法,來自動檢測工人是否正確佩戴了安全帽,從而確保遵守安全規定并減少事…

實驗一:圖像信號的數字化

目錄 一、實驗目的 二、實驗原理 三、實驗內容 四、源程序及結果 源程序(python): 結果: 五、結果分析 一、實驗目的 通過本實驗了解圖像的數字化過程,了解數字圖像的數據矩陣表示法。掌握取樣(象素個…

用Python爬蟲能實現什么?得到什么?

Python爬蟲是一種強大的工具,可以用來自動化地從互聯網上抓取數據和信息。使用Python實現爬蟲可以達成多種目的,包括但不限于以下幾個方面: 數據收集: 網頁內容抓取:可以抓取網頁上的文本、圖片、視頻等內容。搜索引擎…

Linux 網絡配置與連接

一、網絡配置 1.1 ifconfig 網卡配置查詢 ifconfig #查看所有啟動的網絡接口信息 ifconfig 指定的網卡 #查看指定網絡接口信息 1.2 修改網絡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 #ens33網絡配置文…

【電源拓撲】反激拓撲

目錄 工作模式 固定頻率 CCM連續電流模式 DCM不連續電流模式 可變頻率 CRM電流臨界模式 反激電源CRM工作模式為什么要跳頻 反激電源應用場景 為什么反激電源功率做不大 電感電流爬升 反激變壓器的限制條件 精通反激電源設計的關鍵-反激電源變壓器設計 反激電源變壓…

MySQL 事務與鎖

事務ACID特性 原子性:事務要么同時成功,要么同時失敗,事務的原子性通過undo log日志保證 一致性:業務代碼要拋出報錯,讓數據庫回滾 隔離性:事務并發執行時,他們內部操作不能互相干擾 持久性&…

Python 讀取esxi上所有主機的設備信息

(主要是為了統計所有虛擬機的設備名稱和所屬主機) 代碼: from pyVim import connect from pyVmomi import vim import ssldef get_vm_devices(vm):devices []try:if vm.config is not None and hasattr(vm.config, hardware) and hasattr(v…

SpringBoot解決Apache Tomcat輸入驗證錯誤漏洞

Apache Tomcat是美國阿帕奇(Apache)基金會的一款輕量級Web應用服務器。該程序實現了對Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat存在輸入驗證錯誤漏洞,該漏洞源于HTTP/2請求的輸入驗證不正確,會…

postgresql簡單導出數據與手動本地恢復(小型數據庫)

問題 需要每天手動備份postgresql。 步驟 導出數據 /opt/homebrew/opt/postgresql16/bin/pg_dump --file/Users/zhangyalin/backup_sql/<IP地址>_pg-2024_07_15_17_30_15-dump.sql --dbname<數據庫名> --username<用戶名> --host<IP地址> --port54…

Day53:圖論 島嶼數量 島嶼的最大面積

99. 島嶼數量 時間限制&#xff1a;1.000S 空間限制&#xff1a;256MB 題目描述 給定一個由 1&#xff08;陸地&#xff09;和 0&#xff08;水&#xff09;組成的矩陣&#xff0c;你需要計算島嶼的數量。島嶼由水平方向或垂直方向上相鄰的陸地連接而成&#xff0c;并且四周…

低空經濟持續發熱,無人機培訓考證就業市場及前景剖析

隨著科技的不斷進步和社會需求的日益增長&#xff0c;低空經濟已成為全球及我國經濟增長的新引擎。作為低空經濟的重要組成部分&#xff0c;無人機技術因其廣泛的應用領域和顯著的經濟效益&#xff0c;受到了社會各界的廣泛關注。為滿足市場對無人機人才的需求&#xff0c;無人…

深入剖析 Android 開源庫 EventBus 的源碼詳解

文章目錄 前言一、EventBus 簡介EventBus 三要素EventBus 線程模型 二、EventBus 使用1.添加依賴2.EventBus 基本使用2.1 定義事件類2.2 注冊 EventBus2.3 EventBus 發起通知 三、EventBus 源碼詳解1.Subscribe 注解2.注冊事件訂閱方法2.1 EventBus 實例2.2 EventBus 注冊2.2.1…

夢想CAD在線預覽編輯功能

1.最近有個需求&#xff0c;在web系統里進行在線進行CAD預覽和編輯&#xff0c;這里用的是夢想CAD實現此功能&#xff0c;夢想CAD官網文檔 2.CAD預覽&#xff0c;需要需要對CAD文件格式進行轉化&#xff0c;將dwg文件格式轉化為mxweb格式&#xff0c;再進行調用夢想CAD里的打開…

ipynb轉換為pdf、Markdown(.md)

Jupyter Notebook 文件&#xff08;.ipynb&#xff09;可以轉換成多種數據格式&#xff0c;以適應不同的使用場景和需求。以下是幾種常見的轉換格式及其簡潔描述&#xff1a; HTML: Jupyter Notebook可以直接導出為靜態的網頁&#xff08;HTML&#xff09;格式&#xff0c;這樣…

記一次IP數據處理過程,文本(CSV文件)處理,IP解析

個人博客&#xff1a;無奈何楊&#xff08;wnhyang&#xff09; 個人語雀&#xff1a;wnhyang 共享語雀&#xff1a;在線知識共享 Github&#xff1a;wnhyang - Overview 起因 突然接收到XX給的任務&#xff0c;要將一批IP數據處理一下&#xff0c;將IP對應的省市區解析出來…

PHP基礎語法

PHP 腳本在服務器上執行&#xff0c;然后將純 HTML 結果發送回瀏覽器。 基本的 PHP 語法 PHP 腳本可以放在文檔中的任何位置。 PHP 腳本以 <?php 開始&#xff0c;以 ?> 結束&#xff1a; <?php // PHP 代碼 ?> PHP 文件的默認文件擴展名是 .php。 PHP 文…

PHP智云物業管理平臺微信小程序系統源碼

?&#x1f3e0;智云物業管理新紀元&#xff01;微信小程序&#xff0c;讓家園管理更智慧&#x1f4f1; &#x1f3e1;【開篇&#xff1a;智慧生活&#xff0c;從物業開始】&#x1f3e1; 在快節奏的現代生活中&#xff0c;我們追求的不僅僅是家的溫馨&#xff0c;更是生活的…

基于hive數據庫的泰坦尼克號幸存者數據分析

進入 ./beeline -u jdbc:hive2://node2:10000 -n root -p 查詢 SHOW TABLES; 刪除 DROP TABLE IF EXISTS tidanic; 上傳數據 hdfs dfs -put train.csv /user/hive/warehouse/mytrain.db/tidanic 《泰坦尼克號幸存者數據分析》 1、原始數據介紹 泰坦尼克號是當時世界上…

達夢數據庫系列—28. 主備集群高可用測試

目錄 監視器關閉 監視器啟動&#xff0c;Detach備庫 主備正常&#xff0c;手動switchover 主庫故障&#xff0c;自動switchover 主庫故障&#xff0c;手動Takeover 主庫故障&#xff0c;備庫強制takeover 主庫重啟 備庫故障 公網連接異常 主庫私網異常 備庫私網異常…