日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
分布式高并發(fā)緩存設計系統(tǒng)

分布式高并發(fā)緩存設計系統(tǒng)

作者:程序猿小秘圈 2017-12-12 14:51:15

存儲

存儲軟件

分布式 緩存在wiki上的定義:用于存儲數(shù)據(jù)的硬件或軟件的組成部分,以使得后續(xù)更快訪問相應的數(shù)據(jù)。緩存中的數(shù)據(jù)可能是提前計算好的結(jié)果、數(shù)據(jù)的副本等。典型的應用場景:有cpu cache, 磁盤cache等。本文中提及到緩存主要是指互聯(lián)網(wǎng)應用中所使用的緩存組件。

成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設、成都外貿(mào)網(wǎng)站建設與策劃設計,岳陽縣網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:岳陽縣等地區(qū)。岳陽縣做網(wǎng)站價格咨詢:13518219792

概述

緩存概述

什么是緩存

緩存在wiki上的定義:用于存儲數(shù)據(jù)的硬件或軟件的組成部分,以使得后續(xù)更快訪問相應的數(shù)據(jù)。緩存中的數(shù)據(jù)可能是提前計算好的結(jié)果、數(shù)據(jù)的副本等。典型的應用場景:有cpu cache, 磁盤cache等。本文中提及到緩存主要是指互聯(lián)網(wǎng)應用中所使用的緩存組件。

為什么引入緩存

傳統(tǒng)的后端業(yè)務場景中,訪問量以及對響應時間的要求均不高,通常只使用DB即可滿足要求。這種架構(gòu)簡單,便于快速部署,很多網(wǎng)站發(fā)展初期均考慮使用這種架構(gòu)。但是隨著訪問量的上升,以及對響應時間的要求提升,單DB無法再滿足要求。這時候通常會考慮DB拆分(sharding)、讀寫分離、甚至硬件升級(SSD)等以滿足新的業(yè)務需求。但是這種方式仍然會面臨很多問題,主要體現(xiàn)在:

性能提升有限,很難達到數(shù)量級上的提升,尤其在互聯(lián)網(wǎng)業(yè)務場景下,隨著網(wǎng)站的發(fā)展,訪問量經(jīng)常會面臨十倍、百倍的上漲。

成本高昂,為了承載N倍的訪問量,通常需要N倍的機器,這個代價難以接受。

一丶分布式高并發(fā)緩存設計系統(tǒng)

總體架構(gòu)圖

1.2自定義的客戶端協(xié)議

業(yè)務模塊采用自定義應用層協(xié)議和cacheProxy交互

整個cache后端采用什么協(xié)議,什么存儲(redis,memcached等)對業(yè)務模塊透明

cache后端和業(yè)務端進行了隔離,修改互不影響

1.2負載均衡與容錯機制

采用一致性hash算法,即使部分節(jié)點down機,也不會導致全部的緩存失效,新增節(jié)點也不會導致大量緩存失效和重建

一份緩存數(shù)據(jù)保留兩份,當前hash節(jié)點和下一個真實的hash節(jié)點,單個節(jié)點down機時,緩存也不會馬上失效

cacheMan是一個弱的管理節(jié)點,負責監(jiān)控,刪除節(jié)點,新增節(jié)點,可以任意啟停

1.3緩存維護與淘汰機制

redis原生超時機制+三層LRU緩存架構(gòu),減少最終穿透到redis實例上的請求。

客戶端LRU緩存

cacheProxy代理LRU緩存

redis實例內(nèi)存總量限制+LRU緩存

1.4安全機制

redis實例都會開啟auth功能

redis實例都監(jiān)聽在內(nèi)網(wǎng)ip

1.5核心流程

新增redis節(jié)點



刪除redis節(jié)點

set緩存

get緩存

二、問題

任何平臺隨著用戶規(guī)模的擴大、功能不斷的添加,持久化數(shù)據(jù)庫層承受的讀寫壓力會越來越大,一旦數(shù)據(jù)庫承壓過大會導致讀寫性能陡然下降,嚴重時會導致大量的業(yè)務請求超時,進而發(fā)生“雪崩”引發(fā)嚴重的故障。

三、解決方案

在業(yè)務層和數(shù)據(jù)庫持久層之間引入一層內(nèi)存緩存層,對于復雜且業(yè)務邏輯上不會變化的查詢結(jié)果進行緩存,業(yè)務請求再次發(fā)起時,每次都先從緩存層中查詢,從而大大減少對數(shù)據(jù)庫的查詢,減小對數(shù)據(jù)庫的壓力。

四、分布式內(nèi)存緩存、本地單點緩存、應用層緩存對比

類型穩(wěn)定性擴展性通用性對代碼的侵入性

應用層緩存應用會頻繁重啟更新,緩存易丟失,穩(wěn)定性不佳差,受限于進程的資源限制差,不同應用難以復用代碼侵入性小,無網(wǎng)絡操作,只需要操作應用進程內(nèi)存

本地單點緩存獨立的緩存應用(redis、memcached等),不會頻繁重啟,穩(wěn)定性一般,但有單點故障問題一般,受限于單服務器資源限制一般,業(yè)務應用和緩存應用有強耦合代碼侵入性一般,需要引入對應的api通常有網(wǎng)絡操作

分布式內(nèi)存緩存分布式系統(tǒng),具備故障自動恢復功能,無單點故障問題,穩(wěn)定性佳好,支持水平擴展好,對業(yè)務層提供通用接口,后端具體的緩存應用對業(yè)務透明代碼侵入性一般,需要引入通用的api通常有網(wǎng)絡操作。


新聞名稱:分布式高并發(fā)緩存設計系統(tǒng)
轉(zhuǎn)載源于:http://www.5511xx.com/article/djscdjp.html