京東迴應被曝大裁員:只是業務板塊的正常優化
阿新 • • 發佈:2022-03-28
背景:
需要選擇合適的方案去應對資料規模的增長,以應對逐漸增長的訪問壓力和資料量。資料庫的擴充套件方式主要包括:業務分庫、主從複製、資料庫分表。
資料庫分表:
將不同業務資料分散儲存到不同的資料庫伺服器,能夠支撐百萬甚至千萬使用者規模的業務,但如果業務繼續發展,同一業務的單表資料也會達到單臺數據庫伺服器的處理瓶頸。例如,淘寶的幾億使用者資料,如果全部存放在一臺資料庫伺服器的一張表中,肯定是無法滿足效能要求的,此時就需要對單表資料進行拆分。
單表資料拆分有兩種方式:垂直分表和水平分表。
雪花演算法
雪花演算法是由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碰撞,並且效率較高。