現在的位置: 首頁 > 資料庫 > 正文

Tumblr的Redis集群控制層有哪些應用?Tumblr的Redis集群控制層性能如何

2020年07月02日 資料庫 ⁄ 共 1024字 ⁄ 字型大小 評論關閉

  Tumblr是世界上最流行的輕博客服務,其用戶量在最近的一次統計中已經達到2090萬,超過了全球最大的博客服務WordPress。下面學步園小編來講解下Tumblr的Redis集群控制層有哪些應用?Tumblr的Redis集群控制層性能如何?

  Tumblr的Redis集群控制層有哪些應用

  在Tumblr初期,其通知系統是由MySQL+Memcached的傳統架構組成,但是由於通知系統龐大的添加操作,導致MySQL負擔非常大,經常搞得InnoDBglobaltransactionmax(1024)都超出了。於是他們打算重新構建消息系統。首先他們分析了消息系統的應用特點:

  按時間排序

  唯一性,每一條消息都是唯一的

  讀寫比大概是60%/30%

  每個用戶的消息條數一定

  數據按用戶劃分,每個用戶只能讀自己的消息

  Tumblr的Redis集群控制層架構

  基於上面應用特點的考慮,Tumblr選擇了Redis的sortedsets作為其數據存儲。

  他們的存儲方式是:

  給每個用戶分配一個sortedsets,其中每一項保存一條通知

  每條通知以時間戳為score在sortedsets中進行排序

  超出100條通知後進行trim操作

  Tumblr的數據量:2300萬個BLOG,每個BLOG100條消息,每條消息體大概160bytes。

  響應速度:大概每秒提供7,500次請求,每次請求的響應時間小於5ms。

  考慮到容災性及可能快速增長的數據量,Tumblr打算採用preshard的方式來架構他們的Redis集群,於是他們開發了Staircar(一個提供HTTP服務的Redis集群調度管理組件)。下面是他們的通知系統架構圖:

  實際上在開發Staircar前,他們考查了一些其它的類似功能的產品,但都不能滿足他們所有需求(或者說閑雜功能過多)。

  Tumblr的Redis集群控制層性能如何

  Staircar由C語言寫成,以libevent為網路驅動層,提供JSON格式的RESTFul介面,其性能超出了Tumblr工程師們的想像,其在最高峰時的響應時間也在5ms以下,其性能測試結果是大概能處理每秒30,000次左右的請求。

  以上就是關於「Tumblr的Redis集群控制層有哪些應用?Tumblr的Redis集群控制層性能如何」的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平台!

抱歉!評論已關閉.