上一節,我講了哈希算法的四個應⽤,它們分別是:安全加密、數據校驗、惟⼀標識、散列函數。今天,咱們再來看剩餘三種應用:算法
負載均衡、數據分片、分佈式存儲數據庫
你可能已經發現,這三個應用都跟分佈式系統有關。沒錯,今天我就帶你看下,哈希算法是如何解決這些分佈式問題的。安全
應用五:負載均衡
一、如何實現一個會話粘滯的負載均衡算法
![](http://static.javashuo.com/static/loading.gif)
二、維護映射關係表的弊端
![](http://static.javashuo.com/static/loading.gif)
三、藉助哈希算法完美解決
![](http://static.javashuo.com/static/loading.gif)
應用六:數據分片
一、引子案列
![](http://static.javashuo.com/static/loading.gif)
二、難點處理方案
![](http://static.javashuo.com/static/loading.gif)
三、問題所在痛點
![](http://static.javashuo.com/static/loading.gif)
四、如何快讀判斷圖片是否在圖庫中
一、對數據進行分片、而後採用多機處理
![](http://static.javashuo.com/static/loading.gif)
二、具體方法
![](http://static.javashuo.com/static/loading.gif)
三、須要多少臺機器
一、散列表中的每一個數據單元包含兩個信息負載均衡
![](http://static.javashuo.com/static/loading.gif)
二、使用MD5分佈式
![](http://static.javashuo.com/static/loading.gif)
三、一臺機器能夠存多少圖片函數
![](http://static.javashuo.com/static/loading.gif)
四、若是對一億張圖片構建索引,須要大約十幾臺機器加密
![](http://static.javashuo.com/static/loading.gif)
五、實際上
![](http://static.javashuo.com/static/loading.gif)
應用七:惟一標識
一、分佈式存儲
![](http://static.javashuo.com/static/loading.gif)
二、擴容帶來的問題及痛點
一、方法
![](http://static.javashuo.com/static/loading.gif)
二、擴容存在的問題
![](http://static.javashuo.com/static/loading.gif)
三、雪崩效應、壓垮數據庫
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
三、將那個數據放到那個機器上呢
一、因此咱們須要一種方法
![](http://static.javashuo.com/static/loading.gif)
二、解決方案
![](http://static.javashuo.com/static/loading.gif)
三、一致性哈希算法
![](http://static.javashuo.com/static/loading.gif)
解答開篇 & 內容小結
一、解答開篇
![](http://static.javashuo.com/static/loading.gif)
二、內容小結
![](http://static.javashuo.com/static/loading.gif)