1. 程式人生 > 資訊 >京東迴應被曝大裁員:只是業務板塊的正常優化

京東迴應被曝大裁員:只是業務板塊的正常優化

背景:

  需要選擇合適的方案去應對資料規模的增長,以應對逐漸增長的訪問壓力和資料量。資料庫的擴充套件方式主要包括:業務分庫、主從複製、資料庫分表。

資料庫分表:

  將不同業務資料分散儲存到不同的資料庫伺服器,能夠支撐百萬甚至千萬使用者規模的業務,但如果業務繼續發展,同一業務的單表資料也會達到單臺數據庫伺服器的處理瓶頸。例如,淘寶的幾億使用者資料,如果全部存放在一臺資料庫伺服器的一張表中,肯定是無法滿足效能要求的,此時就需要對單表資料進行拆分。 

  單表資料拆分有兩種方式:垂直分表和水平分表。

雪花演算法

  雪花演算法是由Twitter公佈的分散式主鍵生成演算法,它能夠保證不同表的主鍵的不重複性,以及相同表的主鍵的有序性。

  ①核心思想:長度共64bit (一個long型)。首先是一個符號位,1bit標識,由於long基本型別在Java中是帶符號的,最高位是符號位,正數是0,負數是1,所以id一般是正數,最高位是0。

  41bit時間截(毫秒級),儲存的是時間截的差值(當前時間截-開始時間截),結果約等於69.73年。10bit作為機器的ID (5個bit是資料中心,5個bit的機器ID,可以部署在1024個節點)。12bit作為毫秒內的流水號(意味著每個節點在每毫秒可以產生4096個ID)。

  ②優點:整體上按照時間自增排序,並且整個分散式系統內不會產生ID碰撞,並且效率較高。