12 種經(jīng)典億級(jí)流量架構(gòu)之資源隔離思想與方法論

- 為什么要資源隔離 -
線程隔離 進(jìn)程隔離 集群隔離 機(jī)房隔離 讀寫隔離 動(dòng)靜隔離 爬蟲隔離 等等

- 線程隔離 -

- Netty 主從程模型 -


- Dubbo 線程隔離模型 -

all 所有消息都派發(fā)到線程池,包括請(qǐng)求,響應(yīng),連接事件,斷開事件,心跳等。 direct 所有消息都不派發(fā)到線程池,全部在 IO 線程上直接執(zhí)行。 message 只有請(qǐng)求響應(yīng)消息派發(fā)到線程池,其它連接斷開事件,心跳等消息,直接在 IO 線程上執(zhí)行。 execution 只有請(qǐng)求消息派發(fā)到線程池,不含響應(yīng),響應(yīng)和其它連接斷開事件,心跳等消息,直接在 IO 線程上執(zhí)行。 connection 在 IO 線程上,將連接斷開事件放入隊(duì)列,有序逐個(gè)執(zhí)行,其它消息派發(fā)到線程池。

- Tomcat 請(qǐng)求線程隔離 -
同步非阻塞I/O操作,是一個(gè)基于緩沖區(qū)、并能提供非阻塞I/O操作的API,它擁有比傳統(tǒng)I/O操作具有更好的并發(fā)性能。關(guān)于NIO,可以參考我這篇博客:NIO非阻塞網(wǎng)絡(luò)編程原理。



- 線程隔離小總結(jié) -
資源一旦出現(xiàn)問題,雖然是隔離狀態(tài),想要讓資源重新可用,很難做到不重啟jvm。 線程池內(nèi)部線程如果出現(xiàn)OOM、FullGC、cpu耗盡等問題也是無法控制的 線程隔離,只能保證在分配線程這個(gè)資源上進(jìn)行隔離,并不能保證整體穩(wěn)定性

- 進(jìn)程隔離 -


- 集群隔離 -
解決方案
獨(dú)立拆分模塊 微服務(wù)化

- 線程池隔離與信號(hào)量隔離對(duì)比 -


Generally the only time you should use semaphore isolation for HystrixCommands is when the call is so high volume (hundreds per second, per instance) that the overhead of separate threads is too high; this typically only applies to non-network calls.
隔離的細(xì)粒度太高,數(shù)百個(gè)實(shí)例需要隔離,此時(shí)用線程池做隔離開銷過大 通常這種都是非網(wǎng)絡(luò)調(diào)用的情況下

- 機(jī)房隔離 -


- 數(shù)據(jù)讀寫隔離 -

- 靜態(tài)隔離 -

- 爬蟲隔離 -
爬蟲限流
登錄/會(huì)話限制 下載限流 訪問頻率 ip限制,黑白名單

- UA 介紹 -
一種是:它用爬蟲抓取公司主站B的內(nèi)容并放到自己服務(wù)器上顯示;
另一種是:通過將訪問代理至公司主站B,而域名A是盜用者的,騙取流量。
作者:等不到的口琴
來源:
www.cnblogs.com/Courage129/p/14421585.html

評(píng)論
圖片
表情
