此處架構圖,後續有時間補上
nginx : 分發層 + 應用層 流量分發策略
openresty + nginx + lua
nginx 本地快取 + redis 快取 + tomcat堆快取
針對庫存此類時效性要求高的資料,採用 快取+資料庫 雙寫方案,實時更新快取資料
快取+資料庫雙寫 容易發生資料不一致問題,可採用記憶體佇列來保證資料一致
商品概覽資料時效性要求低,採用 商品服務+訊息對列 非同步更新快取資料
分布式快取重建併發衝突:流量分發hash策略、訊息佇列kafa策略不一致,資料變更的訊息所到的快取服務例項,跟我們的應用層nginx分發到的那個快取服務例項也許就不在一台機器上,可採用zookeeper分布式鎖解決
背景:新系統第一次上線,此時在快取裡可能是沒有資料的,來了大量的請求,命中到資料庫
方案:背景:某乙個或多個商品瞬間成為熱點資料,瞬間來了幾十萬請求,nginx流量分發伺服器通過hash策略將同一商品瞬間分發到後端同一nginx應用伺服器上,導致nginx應用伺服器宕機,前端繼續分發流量,導致其他nignx應用伺服器依次宕機。
方案:在storm中,實時的計算出瞬間出現的熱點
storm這裡,會直接傳送http請求到nginx上,nginx上用lua指令碼去處理這個請求
storm會將熱點本身對應的productid,傳送到流量分發的nginx上面去,放在本地快取中
storm會將熱點對應的完整的快取資料,傳送到所有的應用nginx伺服器上去,直接放在本地快取中
流量分發nginx的分發策略降級
storm還需要儲存下來上次識別出來的熱點list,diff差異,進行熱點取消
資源隔離:執行緒池、訊號量
高效能,高可用系統架構
本文是學習大型分布式 架構的技術總結。對架構乙個高效能,高可用,可伸縮,可擴充套件的分布式 進行了概要性描述,並給出乙個架構參考。一部分為讀書筆記,一部分是個人經驗總結。對大型分布式 架構有很好的參考價值。1 大型 的特點 2 大型 架構目標 3 大型 架構模式 4 高效能架構 以使用者為中心,提供...
高效能,高可用,安全的架構
高效能 rt reponse time 時間 高可用 任何時候專案都必須可用 可公升縮 大促,流量瞬間增大 可擴充套件 開發角度 新需求進行迭代 擴充套件 安全性 網路安全,硬體安全,軟體安全 敏捷性 可持續交付,可持續部署 什麼是高效能?較短的響應時間 較大的併發處理能力 較高的吞吐量與穩定的效能...
高可用,高併發,高效能
高併發 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per second 併發使用者數等。吞吐量 單位時間內處理的請...