降級功能基本是rpc框架的標(biāo)配了读拆,不過對比了一些rpc框架供汛,發(fā)現(xiàn)實(shí)現(xiàn)方式還是挺不一樣的。
唯品會的rpc框架osp
osp是提供了一個配置悉尾,如果配置服務(wù)為降級,那個這個服務(wù)的server端收到請求挫酿,直接返回一個降級對應(yīng)的錯誤碼构眯,client收到這個結(jié)果后,可以根據(jù)這個錯誤碼做處理饭豹,比如返回一些固定數(shù)據(jù)之類的鸵赖。
優(yōu)點(diǎn):
1 降級配置方式非常靈活务漩,可以根據(jù)請求來源配置是否降級拄衰。
2 能非常快速方便處理一些場景:比如唯品會大促的時候饵骨,把商品評論服務(wù)設(shè)置為降級翘悉,這樣就可以方便的關(guān)閉掉商品評論功能了。
3 不同的調(diào)用方可以根據(jù)降級錯誤碼來做不同的事情居触,非常的靈活妖混。
缺點(diǎn):
1 降級了的服務(wù),還是會收到client的請求轮洋,對client和server還是有些壓力
螞蟻金服的rpc框架sofa
sofa沒有看到明確的降級功能制市。
只是提供了自動故障剔除功能,但是這個功能只是修改server的流量權(quán)重弊予,叫他為熔斷更加貼切祥楣。
淘寶的rpc框架dubbo
dubbo提供了一個mock功能,如果server返回異常的情況下汉柒,可以用mock數(shù)據(jù)替代误褪。
<dubbo:reference id="demoService" check="false" interface="com.alibaba.dubbo.demo.DemoService" mock="return null"/>
這種情況下,mock數(shù)據(jù)為null
<dubbo:reference id="demoService" check="false" interface="com.alibaba.dubbo.demo.DemoService" mock="true"/>
這種情況下碾褂,就自動會找DemoServiceMock這個類兽间,去做mock數(shù)據(jù)返回。