亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

抚宁县| 象州县| 万年县| 钟祥市| 贵定县| 阳新县| 吉木萨尔县| 鹤岗市| 扎赉特旗| 巴南区| 高清| 湘潭县| 辽宁省| 桃江县| 天祝| 吉安县| 类乌齐县| 苏州市| 云霄县| 崇仁县| 洪江市| 惠州市| 凤凰县| 荆门市| 靖安县| 上思县| 开封县| 峡江县| 高碑店市| 吐鲁番市| 高清| 宜城市| 永吉县| 容城县| 雷波县| 武冈市| 通州区| 平南县| 大安市| 沛县| 苍山县|