使用場(chǎng)景
- 異步處理
- 流量控制(令牌桶)
- 服務(wù)解耦
局限
- 增加系統(tǒng)復(fù)雜度
- 增加部分延遲
- 可能導(dǎo)致數(shù)據(jù)不一致
思考
- CPU的運(yùn)算速度 遠(yuǎn)大于 內(nèi)存讀寫速度 --> CPU緩存(L1 / L2 / L3)
- 內(nèi)存的讀寫速度 遠(yuǎn)大于 硬盤 --> 內(nèi)存緩存系統(tǒng) (redis / memcache 等) 和 本地緩存 晌块、線程緩存
- 上游系統(tǒng)的處理速度大于下游依賴系統(tǒng) --> mq(緩存上游請(qǐng)求)
- 網(wǎng)絡(luò)請(qǐng)求爱沟、磁盤操作比較耗時(shí) --> 出現(xiàn)了緩存系統(tǒng) / 協(xié)程 / 多線程等概念來(lái)解決
- CPU寫內(nèi)存的速度小于寫cache -> 先寫cache、定時(shí)刷新 -> 出現(xiàn)了線程同步問(wèn)題
- 寫內(nèi)存的速度大于寫磁盤 --> redis 匆背、mysql等系統(tǒng)應(yīng)用的日志都是先寫cache呼伸、按照指定規(guī)則刷新 --> 有了系統(tǒng)崩潰短時(shí)間內(nèi)log不能恢復(fù)的問(wèn)題
- 生產(chǎn)者和消費(fèi)者速度不一致 --> 有了broker暫存消息