二、儲存架構演變
1、架構演變
在2014年7月,為了準備當時的814撒嬌節大促銷活動,我們把單個redis的服務遷移到twemproxy上。twemproxy在後端快速完成資料分片和擴容。為了避免再次擴容,我們靜態分配足夠多的資源。
之後,twemproxy暴露出來的系統瓶頸很多,資源使用很多,也存在一定的浪費。我們決定用redis cluster取代這種複雜的三層架構。
redis cluster GA之後,我們就開始上線使用。最初是3.0.2 版本,後面大量使用3.0.3 ,上個月開始使用3.0.7版本。
下面簡單對比下兩種架構,解析下他們的優缺點。
2、Twemproxy架構優點
![二、儲存架構演變 190927zxhiihgex9om0svi.png](https://i.iter01.com/images/afb5d0f7b87bf08c94ba62d6a314eaf65f0565a0b2cd12fb117d7ce19f0c6e1d.png)
在2014年7月,為了準備當時的814撒嬌節大促銷活動,我們把單個redis的服務遷移到twemproxy上。twemproxy在後端快速完成資料分片和擴容。為了避免再次擴容,我們靜態分配足夠多的資源。
之後,twemproxy暴露出來的系統瓶頸很多,資源使用很多,也存在一定的浪費。我們決定用redis cluster取代這種複雜的三層架構。
redis cluster GA之後,我們就開始上線使用。最初是3.0.2 版本,後面大量使用3.0.3 ,上個月開始使用3.0.7版本。
下面簡單對比下兩種架構,解析下他們的優缺點。
2、Twemproxy架構優點
- sharding邏輯對開發透明,讀寫方式和單個redis一致。
- 可以作為cache和storage的proxy(by auto-eject)。
缺點
- 架構複雜,層次多。包括lvs、twemproxy、redis、sentinel和其控制層程式。
- 管理成本和硬體成本很高。
- 2 * 1Gbps 網路卡的lvs機器,最大能支撐140萬pps。
- 流量高的系統,proxy節點數和redis個數接近。
- Redis層仍然擴容能力差,預分配足夠的redis儲存節點。
這是twemproxy的架構,客戶端直接連線最上面的lvs(LB),第二層是同構的twemproxy節點,下面的redis master節點以及熱備的slave節點,另外還有獨立的sentinel叢集和切換控制程式,twemproxy先介紹到這裡。
3、Redis Cluster架構優點
- 無中心 架構。
- 資料按照slot儲存分佈在多個redis例項上。
- 增加slave做standby資料副本,用於failover,使叢集快速恢復。
- 實現故障auto failover。節點之間通過gossip協議交換狀態資訊;投票機制完成slave到master角色的提升。
- 亦可manual failover,為升級和遷移提供可操作方案。
- 降低硬體成本和運維成本,提高系統的擴充套件性和可用性。
缺點和不足的地方
- client實現複雜,驅動要求實現smart client,快取slots mapping資訊並及時更新。
- 目前僅JedisCluster相對成熟,異常處理部分還不完善,比如常見的“max redirect exception”。
- 客戶端的不成熟,影響應用的穩定性,提高開發難度。
- 節點會因為某些原因發生阻塞(阻塞時間大於clutser-node-timeout),被判斷下線。這種failover是沒有必要,sentinel也存在這種切換場景。
cluster的架構如下:
圖上只有master節點(slave略去),所有節點構成一個完全圖,slave節點在叢集中與master只有角色和功能的區別。
架構演變講完了,開始講第三部分,也是大家最感興趣的一部分。
本文作者:geelou
本文來自雲棲社群合作伙伴rediscn,瞭解相關資訊可以關注redis.cn網站。
相關文章
- Ceph儲存後端ObjectStore架構和技術演進後端Object架構
- Fabric架構演變之路架構
- 系統架構演變架構
- 架構設計之架構的演變架構
- GPU體系架構(二):GPU儲存體系GPU架構
- RocketMQ架構原理解析(二):訊息儲存MQ架構
- 面向資料架構的雲演變架構
- 淺談網路架構及其演變架構
- 故事篇:資料庫架構演變之路資料庫架構
- Streaming Data Warehouse 儲存:需求與架構架構
- 明解資料庫------資料庫儲存演變史資料庫
- 分散式資料庫的架構演變之路分散式資料庫架構
- 二叉樹的儲存結構二叉樹
- 架構師之路,從「儲存選型」起步架構
- 儲存架構|Haystack太強了!存2600億圖片架構
- 高效能、高可用平臺架構演變史架構
- 高併發下的伺服器架構演變伺服器架構
- 架構演進之「微服務架構」架構微服務
- 現代儲存架構:磁帶儲存在資料中心"重生"架構
- MySQL高階10-InnoDB引擎儲存架構MySql架構
- 超融合私有云基礎架構方案評估(架構與儲存篇)架構
- 系統架構都經歷了怎樣的演變?架構
- Redis 架構演變與 Redis-cluster 群集讀寫方案Redis架構
- 雲端計算時代,資料中心架構三層到大二層的演變架構
- 基於MFS高可用的分散式儲存架構分散式架構
- 杉巖PACS影像系統分散式儲存架構分散式架構
- 一個資料庫儲存架構的獨白資料庫架構
- 如何進行雲端儲存架構框架設計?架構框架
- 容器雲環境下如何設計儲存架構?架構
- 分散式日誌儲存架構程式碼實踐分散式架構
- Redis vs Tendis:冷熱混合儲存版架構揭秘Redis架構
- DAOS 分散式非同步物件儲存|架構設計分散式非同步物件架構
- 聊聊演進式架構架構
- Airbnb的架構演進AI架構
- Serverless 架構的演進Server架構
- 儲存結構
- 奈飛架構Netflix從單體到微服務演變圖架構微服務
- 今日頭條架構演進之路——高壓下的架構演進專題架構
- 《MySQL 基礎篇》十:邏輯架構和儲存引擎MySql架構儲存引擎