91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud中怎么實現服務網關Zuul

發布時間:2021-08-10 14:28:48 來源:億速云 閱讀:110 作者:Leah 欄目:編程語言

本篇文章為大家展示了SpringCloud中怎么實現服務網關Zuul,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

服務網關的要素

穩定性  安全性  性能,并發性  擴展性

Spring Cloud Zuul

- 路由+過濾器 - 核心是一系列的過濾器

Zuul路由配置

management:  security:    enabled: false // 權限設置zuul:   routes:    # myProduct:  // 這個名稱可以隨便填    #   path: /myProduct/**    #   serviceId: product    #   sensitiveHeader: //敏感頭過濾    # 簡潔寫法    product: /myProduct/**  ignored-patterns:     - /**/product/listForOrder // 不對外部訪問(-代表set集合)

查看所有的路由規則:localhost:port/application/routes{  /myProduct/**: "product",  /config/**: "config",  /product/**: "product",}

Zuul配置的動態注入(也可以寫入啟動類中)

@Compoentpublic class ZuulConfig{  @ConfigurationProperties("zuul")  @RefreshScope  public ZuulProperties zuulProperties(){    return new ZuulProperties();  }}

典型應用場景

前置過濾器

- 限流 - 鑒權 - 參數校驗調整

后置過濾器

- 統計- 日志

要想實現Filter,需要以下幾個步驟:

1、繼承ZuulFilter類,為了驗證Filter的特性,我們這里創建3個Filter

根據用戶名來過濾

package com.chhliu.springcloud.zuul;  import javax.servlet.http.HttpServletRequest;  import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext;  public class AccessUserNameFilter extends ZuulFilter {   @Override   public Object run() {     RequestContext ctx = RequestContext.getCurrentContext();     HttpServletRequest request = ctx.getRequest();      System.out.println(String.format("%s AccessUserNameFilter request to %s", request.getMethod(), request.getRequestURL().toString()));      String username = request.getParameter("username");// 獲取請求的參數     if(null != username && username.equals("chhliu")) {// 如果請求的參數不為空,且值為chhliu時,則通過       ctx.setSendZuulResponse(true);// 對該請求進行路由       ctx.setResponseStatusCode(200);       ctx.set("isSuccess", true);// 設值,讓下一個Filter看到上一個Filter的狀態       return null;     }else{       ctx.setSendZuulResponse(false);// 過濾該請求,不對其進行路由       ctx.setResponseStatusCode(401);// 返回錯誤碼       ctx.setResponseBody("{\"result\":\"username is not correct!\"}");// 返回錯誤內容       ctx.set("isSuccess", false);       return null;     }   }    @Override   public boolean shouldFilter() {     return true;// 是否執行該過濾器,此處為true,說明需要過濾   }    @Override   public int filterOrder() {     return 0;// 優先級為0,數字越大,優先級越低   }    @Override   public String filterType() {     return "pre";// 前置過濾器   } }

上述內容就是SpringCloud中怎么實現服務網關Zuul,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾西县| 嘉黎县| 灌阳县| 原平市| 漯河市| 蓬安县| 保山市| 本溪市| 静海县| 揭东县| 都江堰市| 永城市| 长岛县| 宿州市| 汉川市| 永康市| 巧家县| 恭城| 禹城市| 东城区| 黄冈市| 广汉市| 阿鲁科尔沁旗| 宁陕县| 左云县| 宁海县| 剑河县| 鹤岗市| 东源县| 龙里县| 灵川县| 彭泽县| 南充市| 会同县| 墨竹工卡县| 深水埗区| 齐齐哈尔市| 老河口市| 西峡县| 文安县| 永胜县|