LeanCloud上的LeanMessage是如何保證大資料量下的高效能和高可用性的?

時間 2021-05-30 18:35:34

1樓:孫寧

作為即時通訊雲服務,LeanCloud 的 LeanMessage 服務從設計之初就考慮到海量訊息的儲存和查詢問題。對於絕大多數應用、一般的應用場景來說,傳統的關係型資料庫都可以輕鬆支撐訊息的儲存。而且作為平台,LeanMessage 需要考慮最嚴酷的情況,所以在儲存方面,我們使用了 HBase 作為基礎,以 Redis 作為輔助的方案。

簡單地說,HBase 的儲存結構恰好滿足我們對於訊息的主要查詢方式:即以時間為索引分頁獲取。但是由於 HBase 不支援二級索引,因此在設計表、RowKey 結構時需要首先考慮查詢的需求,即「以查詢來設計資料結構」。

我們支援三個維度的查詢:應用全域性級別、對話級別和人(客戶端)級別,因此需要三個表來支撐這樣的查詢。

通過這樣的冗餘設計,我們可以保證所有的訊息記錄查詢都是無差別的,95% 的查詢請求都可以在 30 毫秒之內完成。另外,基於 HBase 本身的設計,使我們無論在資料量還是請求量增加時,都可以比較輕鬆地擴充套件。

當然,這些特性帶來好處同時也有一些 trade off。這樣的儲存結構無法像關係型資料庫那樣靈活地增加新的查詢,可能對於一些應用來說顯得比較笨重。不過我們的產品服務在平台層面,介面規則較為穩定,這使得 HBase 恰恰非常符合我們的場景。

wegame上的星際戰甲和steam上的有什麼不同嗎?

Sakura18 國際服玩家在此,任務時長也就300 吧,首先國服和國際服最大的差別就是沒有交易系統,這就導致白金不好獲取,萌新也很難發育上去,因為有些mod獲取的難度還是有點大的不猛肝真的難。再來就是赤毒玄骸,布拉瑪有多強就不用我說了,5段都有人想弄一把,還有玄骸的復仇電幻紋,永遠滴神嗷 北極LL...

上最差的普高還是上最好的職高?

今天,在醫院裡有乙個阿姨生了乙個小男孩。開始我還以為他是小女孩,因為他的頭髮長長的,黑乎乎的。後來,我才知道是個小男孩。小男孩長得很是特別。小小的腦袋,小小的鼻子,小小的嘴巴,還有小小的眼睛,小小的手。總之,什麼都是小小的,媽媽告訴我,每個人剛生出來時都是那麼小。看著那麼小的乙個人,我感到他很是可愛...

檯燈上的UV filter?

紫外線量很少,放心用吧 比如你每天用4小時,連續一周的量,相當於夏天在外面曬一小時,這還是沒有那層玻璃的情況下,有了玻璃,大部分都過濾掉了 溫暖你的手 鹵素燈是通過燈絲發熱來發光的,所以含有與太Sunny幾乎一樣的光譜,包括了紫外線和紅外線。紫外線對人體的傷害和所有 有害 的東西一樣,取決於量,不用...