成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據庫中間件的分片規則如何選擇,這篇文章告訴你

數據庫
本文對常用數據分片規則進行優缺點以及適應場景的介紹,希望對讀者朋友們有所幫助!

在做數據的分庫分表時,選擇合適分片規則是一件很重要的事情,如果分片規則選擇不合理,可能會導致以下兩種情況:

  • 數據分布不均衡,系統產生單點故障
  • 后期數據擴容難

因此本文對常用數據分片規則進行優缺點以及適應場景的介紹,希望對讀者朋友們有所幫助!

時間范圍分片

時間范圍分片要求分片鍵為時間類型字段,可以支持按年、按月、按日、按小時等范圍進行數據分片

優點:

此分片規則在擴容時只需要添加節點,指定日期范圍,可以避免擴容時的數據遷移

缺點:

負載不均衡,容易導致單節點故障,假設:2016.1->2016.6這個時間段(上圖DB2節點),公司在做產品推廣,那么這個時間段的數據量會比較大,會導致DB2節點負載會比較高,而節點負載又比較低。

適應場景:

具有時間屬性的數據,適合做范圍分片,比如日志數據,前期查詢頻率比較高,可以按照季度或者月份進行范圍分割,后期不需要直接把整個節點遷移走或者進行數據清空,如下圖,假如DB1所在數據不需要,直接遷移走即可。

如下圖是一個數據擴容示例,假設之前的分片規則規劃至2016年底,那么為了支持2017年的數據,只需要增加對應節點、并修改分片規則即可(DB4節點),不需要遷移原有數據

數值范圍分片

數值范圍分片與時間范圍分片類似,唯一不同就是每個分片數據量相對均衡,熱點數據存在但是相對較少。

比如時間范圍分片2016.1-2016.6為一個分片,在此分片上產生數據是不可控的,假如這個時間段公司不搞促銷,那么這個分片數據可能為1w條,如果搞可能為1千萬。

但是數值范圍分片沒有此問題,因為在設置分片時,已規定了每個分片的數據量,所以數據分布比較均衡。

優點:

  • 此分片規則在擴容時只需要添加節點,指定數值范圍,可以避免擴容時的數據遷移。
  • 數據量可控,可以均衡,也可以不均衡。

缺點:

無法解決熱點問題,如果某一段數據訪問QPS特別高,就會落到單節點上進行操作。

適應場景:

業務場景中熱點數據比較少的業務都可以使用,比如用戶系統,以用戶ID進行分片,用戶Id采用全局遞增模式。

取模分片

取模顧名思義就是對分片鍵值與對應的節點數進行取余,如下圖,假如分片鍵為6,節點數為3,那么6%3=0,那么此分片鍵應該保存在DB1節點

取模分片擴展又分為基礎分片和hash取模分片,具體如下:

  • 基礎分片要求分片鍵類型為數值型或者值中必須帶有數字,然后進行截取取余計算。
  • hash取模分片不要求字段值中必須要有數字,因為不管是字符串還是其他值,需要先進行hash計算,然后再進行取模

優點:

節點負載均衡,假設key是按照全局遞增,每次保存數據時與節點數進行取模,保存至對應的節點。

缺點:

在擴容時需要全量遷移,因前期是按照規定的節點數取模存儲到各個節點的,如果后期新增節點,導致老數據按照新的節點數取模無法匹配到對應的節點,如下圖:

因此所有的數據需要全部遷移重新分片,如下圖:

適應場景:

適用于需要將數據均勻分布的場景,例如:銀行類客戶業務應用,業務邏輯主體是客戶,可使用客戶對應的表字段(例如客戶號)作為拆分鍵

一致性hash分片

之前文章介紹過一致性hash分片各種特性,具體可查看一致性HASH算法,看這一篇就夠了,這里只做簡單介紹

一致性哈希是指將「存儲節點」和「數據」都映射到一個首尾相連的哈希環上,增加或者移除一個節點,只影響該節點在哈希環上順時針相鄰的后繼節點,其它數據不會受到影響

但是一致性哈希算法不能夠均勻的分布節點,會出現大量請求都集中在一個節點的情況,在這種情況下進行容災與擴容時,容易出現雪崩的連鎖反應,如下圖

因此需要增加虛擬節點來解決數據均衡分布的問題,如下圖:

優點:

通過增加虛擬節點后數據分布相對均衡,節點不存在熱點問題。

缺點:

數據擴容相對復雜,理論上一致性Hash在擴容時只需要遷移相鄰節點部分數據即可,但是為了保證節點的數據均衡,增加了虛擬節點,導致相鄰過多,那么數據擴容變得就沒那么簡單,假設增加DB4節點的虛擬節點(紅色標識),那么相鄰的DB1和DB3數據都需要遷移。

適應場景:

適用于需要將數據均勻分布并且在擴容時不需要大量遷移數據的場景。

責任編輯:趙寧寧 來源: 架構成長指南
相關推薦

2018-02-08 18:16:39

數據庫MySQL鎖定機制

2019-02-21 09:32:13

MQ中間件SQL

2020-07-09 10:21:03

網絡排錯TCPIP

2020-09-18 10:18:08

MySQL數據插入數據庫

2023-04-06 11:10:31

閉包JavaScript

2017-11-30 08:56:14

數據庫中間件架構師

2022-05-27 07:49:14

RocketMQ消息中間件分布式

2017-11-27 06:01:37

數據庫中間件中間層

2017-11-27 05:36:16

數據庫中間件TDDL

2017-11-27 05:06:42

數據庫中間件cobar

2017-12-01 05:04:32

數據庫中間件Atlas

2018-02-24 19:37:33

Java8數據庫中間件

2017-05-23 18:55:05

mysql-proxy數據庫架構

2019-01-08 07:43:53

路由器調制解調器

2017-07-12 16:56:42

卷積神經網絡結構數據CNN

2017-07-05 15:42:58

卷積神經網絡Non-Euclide計算機視覺

2011-08-10 13:03:58

CJDBC數據庫集群

2018-10-24 16:25:24

數據庫MySQLxtraback

2022-08-29 10:08:50

跨集群

2018-09-28 09:32:57

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区在线视频 | 岛国av免费观看 | 一区二区三区亚洲 | 国产精品久久久久久久久久免费看 | 国产在线精品一区二区 | 伊人久久精品一区二区三区 | 国产欧美一区二区三区在线看 | 国产精品成人一区二区 | 在线看黄免费 | 成人欧美一区二区三区黑人孕妇 | 成人毛片在线观看 | 国产精品区一区二区三区 | 国产精品久久久久久婷婷天堂 | 二区中文字幕 | 国产精品日产欧美久久久久 | 一级a性色生活片久久毛片 午夜精品在线观看 | 欧美亚洲另类在线 | 久久一 | 欧美日韩1区2区3区 欧美久久一区 | 日本中文字幕在线视频 | 亚洲精品黄色 | 亚洲成人三级 | 日本不卡一区二区三区 | 成人精品久久 | 亚洲综合一区二区三区 | 欧美九九 | 久久区二区 | 99久久99| 日本不卡视频 | 91精品国产麻豆 | 日韩精品视频在线观看一区二区三区 | 久久在线 | 亚洲成人av在线播放 | 99亚洲精品| 黄色毛片免费视频 | 日韩国产中文字幕 | www.久久精品 | 成人精品鲁一区一区二区 | 欧美成人精品一区二区男人看 | 欧美亚洲第一区 | 日韩在线不卡 |