限流主要是針對非核心服務調用者進行的。ajax
原則上,大促核心鏈路上的服務都要配置限流,以避免大促期間的流量超過預估值把服務器壓垮。
同時還要考慮出口限流,主要是對db的限流,配置一個讀寫總流,以免把服務器壓垮。json
限流實現方式主要有兩種:服務器
方法1的好處是簡單,缺點是限流配置可能會分散到多個文件甚至bundle中。
方法2的好處是集中管理,缺點是須要限流的服務要專門引入一個新的serivce,之後每加一個限流內容這個servcie都要進行下修改。設計
兩種方法各有優劣,各個系統可根據本身的業務特色進行配置。日誌
限流處理的超量處理整體來講有兩種策略:xml
這兩種策略的使用場景主要以下:對象
整體而言,超量以後執行指定動做要好於不作處理。接口
配置完成後,就須要進行驗證了,驗證的方式主要是看日誌,經過日誌看支付寶
一般而言,咱們配置的限流值要比平常的流量值大好幾倍的,正常狀況下不會觸發限流的,於是要觸發限流一般有兩種方法:ci
經過查看日誌能夠知道單機的限流攔截狀況,可是一個系統經過會部署上百臺服務器,若是要了解整個系統的攔截狀況,手工一臺臺查看然後相加的方式顯示是不可取的。
在支付寶中強大的xflush,於是能夠利用xflush配置對應的監控,經過監控一目瞭然瞭解整個集羣的限流狀況,主要是配置三個數據:
而後把這個數據配置到一張報表中,這樣就能夠方便的在一張報表中瞭解系統總體限流狀況。