先了解分布式和集群的概念:分布式是單系統拆分成多模組系統,集群是單個應用分成多個應用協同工作,分布式因為拆分成多個應用協同工作,所以也是集群,但集群的應用不一定拆分成模組系統,所以不一定是模組系統.
hash演算法的使用範圍:資料加密,資料儲存和查詢時 序列用的就是hash和b樹
hash儲存方式 根據你的資料產生乙個固定的hash碼 比如1 hash碼就是1, 然後再查詢時就根據你輸入資料的hash碼進行查詢, 有值就是存在,沒有就是空.
hash衝突:當兩個資料通過計算得出的hash值相同了,那麼就叫hash衝突;如何解決hash衝突?
開放定址法:出現hash衝突時,可以將後來的資料存入到相鄰的空閒位置(一般不用,新增資料無法新增)
拉鍊法:當出現hash衝突,將衝突的下標位進行縱向擴充套件.
如果hash演算法設計的很好,那麼查詢效率會接近於o(1),hash表查詢的速率是由hash演算法決定的,而且這個演算法一直在更新
普通hash演算法在伺服器擴容和縮容時會出現session問題
將int的取值範圍形成為乙個閉環 成為hash環 然後伺服器均勻的分布在hash環上,成為hash節點, 每個使用者請求都在乙個點上,按順時針查詢最近的hash節點,也就是伺服器,當有乙個伺服器宕機時,使用者請求的是消失的hash節點的話,那麼就按順時針再找下乙個hash節點;如果增加了新伺服器,新增了hash節點,那麼新增的hash節點與上乙個節點之間的使用者 將會被重新路由到新節點,之前是路由新hash節點的下乙個節點,
缺陷:如果hash節點過少,會導致某
分布式 一些問題
1 有使用過快取嗎?redis和memcached有什麼區別?2 redis的執行緒模型?單執行緒的redis如何實現高效能的?3 使用redis實現過分布式鎖嗎?什麼是分布式鎖 4 有什麼其他方式實現分布式鎖嗎?zk實現的和redis有何區別?5 zk實現的分布式鎖如何解決網路抖動的鎖丟失導致的併...
分布式的一些思考
最有效率的分布式是在執行方法前知道所執行的方法使用的資料即所謂環境,並把相關資料和方法本法放到指定的機器上執行,返回結果給指定的客戶端。在方法本身不確定的前提下,所有資料都是環境一部分。如果使用統一資料伺服器的方法,網路和硬碟的開銷抵消了分布式的優勢。因為大部分操作無外乎就是把資料簡單操作後放到新的...
分布式及雲計算的一些概念整理
架構 soa架構 serverless 微服務架構理 論 cap理 論,flp 不可能結果理論 儲存系統 redis mongodb dynamodb儲存 引擎 postgresql,mysql,oracle bigtable hbase 計算引擎 hadoop storm spark flink ...