自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

1分鐘,啥是數(shù)據(jù)庫讀寫分離架構(gòu)?

開發(fā) 開發(fā)工具 數(shù)據(jù)庫運維
數(shù)據(jù)庫讀寫分離雖然不難,但并不是所有的“數(shù)據(jù)庫扛不住”的場景,都應(yīng)該用讀寫分離。今天花1分鐘簡單介紹下這個場景。

RD:數(shù)據(jù)量太大,數(shù)據(jù)庫扛不住了,幫忙申請一個從庫,讀寫分離。

DBA:數(shù)據(jù)量多少?

RD:5000w左右。

DBA:讀寫吞吐量呢?

RD:讀QPS約200,寫QPS約30左右。

[[327606]]

額,數(shù)據(jù)庫讀寫分離雖然不難,但并不是所有的“數(shù)據(jù)庫扛不住”的場景,都應(yīng)該用讀寫分離。今天花1分鐘簡單介紹下這個場景。

什么是數(shù)據(jù)庫讀寫分離?

一主多從,讀寫分離,主動同步,是一種常見的數(shù)據(jù)庫架構(gòu),一般來說:

  • 主庫,提供數(shù)據(jù)庫寫服務(wù)
  • 從庫,提供數(shù)據(jù)庫讀服務(wù)
  • 主從之間,通過某種機制同步數(shù)據(jù),例如mysql的binlog

一個組從同步集群通常稱為一個“分組”。

分組架構(gòu)究竟解決什么問題?

大部分互聯(lián)網(wǎng)業(yè)務(wù)讀多寫少,數(shù)據(jù)庫的讀往往最先成為性能瓶頸,如果希望:

  • 線性提升數(shù)據(jù)庫讀性能
  • 通過消除讀寫鎖沖突提升數(shù)據(jù)庫寫性能

此時可以使用分組架構(gòu)。

一句話,分組主要解決“數(shù)據(jù)庫讀性能瓶頸”問題,在數(shù)據(jù)庫扛不住讀的時候,通常讀寫分離,通過增加從庫線性提升系統(tǒng)讀性能。

什么是數(shù)據(jù)庫水平切分?

水平切分,也是一種常見的數(shù)據(jù)庫架構(gòu),一般來說:

  • 每個數(shù)據(jù)庫之間沒有數(shù)據(jù)重合,沒有類似binlog同步的關(guān)聯(lián)
  • 所有數(shù)據(jù)并集,組成全部數(shù)據(jù)
  • 會用算法,來完成數(shù)據(jù)分割,例如“取模”

一個水平切分集群中的每一個數(shù)據(jù)庫,通常稱為一個“分片”。

水平切分架構(gòu)究竟解決什么問題?

大部分互聯(lián)網(wǎng)業(yè)務(wù)數(shù)據(jù)量很大,單庫容量容易成為瓶頸,如果希望:

  • 線性降低單庫數(shù)據(jù)容量
  • 線性提升數(shù)據(jù)庫寫性能

此時可以使用水平切分架構(gòu)。

一句話總結(jié),水平切分主要解決“數(shù)據(jù)庫數(shù)據(jù)量大”問題,在數(shù)據(jù)庫容量扛不住的時候,通常水平切分。

我為什么不喜歡讀寫分離?

對于互聯(lián)網(wǎng)大數(shù)據(jù)量,高并發(fā)量,高可用要求高,一致性要求高,前端面向用戶的業(yè)務(wù)場景,如果數(shù)據(jù)庫讀寫分離:

  • 數(shù)據(jù)庫連接池需要區(qū)分:讀連接池,寫連接池
  • 如果要保證讀高可用,讀連接池要實現(xiàn)故障自動轉(zhuǎn)移
  • 有潛在的主庫從庫一致性問題
  • 如果面臨的是“讀性能瓶頸”問題,增加緩存可能來得更直接,更容易一點
  • 關(guān)于成本,從庫的成本比緩存高不少
  • 對于云上的架構(gòu),以阿里云為例,主庫提供高可用服務(wù),從庫不提供高可用服務(wù)

所以,上述業(yè)務(wù)場景下,建議使用緩存架構(gòu)來加強系統(tǒng)讀性能,替代數(shù)據(jù)庫主從分離架構(gòu)。

當(dāng)然,使用緩存架構(gòu)的潛在問題:如果緩存掛了,流量全部壓到數(shù)據(jù)庫上,數(shù)據(jù)庫會雪崩。因此,對緩存,一般也會做水平切分,確保不會同一時間全掛。

總結(jié)

  • 讀寫分離,解決“數(shù)據(jù)庫讀性能瓶頸”問題
  • 水平切分,解決“數(shù)據(jù)庫數(shù)據(jù)量大”問題
  • 對于互聯(lián)網(wǎng)大數(shù)據(jù)量,高并發(fā)量,高可用要求高,一致性要求高,前端面向用戶的業(yè)務(wù)場景,微服務(wù)緩存架構(gòu),可能比數(shù)據(jù)庫讀寫分離架構(gòu)更合適

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2025-01-24 08:38:47

2009-11-02 18:07:58

Oracle數(shù)據(jù)庫

2022-12-05 07:51:24

數(shù)據(jù)庫分庫分表讀寫分離

2021-05-17 20:13:50

數(shù)倉操作型數(shù)據(jù)庫

2019-11-20 10:38:59

MySQLSQL數(shù)據(jù)庫

2009-11-20 18:08:37

Oracle數(shù)據(jù)庫

2019-08-07 07:04:54

內(nèi)存緩存數(shù)據(jù)庫KV

2019-07-05 07:50:52

數(shù)據(jù)庫空值查詢

2018-01-09 18:46:44

數(shù)據(jù)庫架構(gòu)讀寫分離

2018-06-26 09:37:07

時序數(shù)據(jù)庫FacebookNoSQL

2018-01-15 05:54:45

數(shù)據(jù)庫讀寫分離互聯(lián)網(wǎng)

2022-12-15 09:44:29

數(shù)據(jù)庫利器

2020-07-21 07:42:29

數(shù)據(jù)庫信息技術(shù)

2009-11-20 17:06:49

Oracle數(shù)據(jù)庫字符

2025-02-25 07:49:36

智能體數(shù)據(jù)庫DeepSeek

2023-04-15 20:33:35

圖形數(shù)據(jù)庫數(shù)據(jù)庫

2024-12-04 16:12:31

2016-12-21 15:08:14

數(shù)據(jù)庫垂直拆分

2020-01-03 16:30:14

數(shù)據(jù)庫讀寫分離分庫

2018-10-16 16:45:05

數(shù)據(jù)庫讀寫分離
點贊
收藏

51CTO技術(shù)棧公眾號