Spring Cloud Alibaba 教程(基於首個畢業版)(十四):擴展Sentinel- 實現區分來源

本文實現sentinel實現區分來源

一、爲什麼實現區分來源

在前面的博客中,我們在設置流控規則時我們發現有個針對來源,設置授權規則時我們發現有個流控應用,那兩個到底怎麼用的呢?下面爲你揭曉

二、實現

2.1 新建類實現 RequestOriginParser 接口

@Component
public class MyRequestOriginParser implements RequestOriginParser {

    @Override
    public String parseOrigin(HttpServletRequest request) {
        // 從請求參數中獲取名爲 origin的參數並返回
        // 如果獲取不到origin參數,那麼就拋異常
        String origin = request.getParameter("origin");
        if (StringUtils.isBlank(origin)) {
            throw new IllegalArgumentException("origin must be specified");
        }
        return origin;
    }
}

此處是將參數放置在url 後面,在項目的實際開發過程中,我們應該放在header中

三、驗證

1. 如果我在url中不加入origin這個參數那麼將會報錯
2. 在設置限流規則中如果把針對來源設置成xxx,那麼xxx將會被限流
3. 在設置授權規則的時候,我們把流控應用設置成xxx並加入黑名單,那麼我們會發現請求不會通過了。
小夥伴可以自己試試其他的玩法,此處就省略了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章