欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Cloud 服務網(wǎng)關Zuul的實現(xiàn)

 更新時間:2019年07月01日 09:08:14   作者:阿南  
這篇文章主要介紹了Spring Cloud 服務網(wǎng)關Zuul的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

服務網(wǎng)關的要素

  • 穩(wěn)定性
  • 安全性
  • 性能,并發(fā)性
  • 擴展性

Spring Cloud Zuul

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

Zuul路由配置

management:
  security:
    enabled: false // 權限設置
zuul: 
  routes:
    # myProduct:  // 這個名稱可以隨便填
    #   path: /myProduct/**
    #   serviceId: product
    #   sensitiveHeader: //敏感頭過濾
    # 簡潔寫法
    product: /myProduct/**
  ignored-patterns: 
    - /**/product/listForOrder // 不對外部訪問(-代表set集合)
查看所有的路由規(guī)則:localhost:port/application/routes
{
  /myProduct/**: "product",
  /config/**: "config",
  /product/**: "product",
}
  

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

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

典型應用場景

前置過濾器

 - 限流
 - 鑒權
 - 參數(shù)校驗調(diào)整

后置過濾器

- 統(tǒng)計
- 日志

要想實現(xiàn)Filter,需要以下幾個步驟:

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

根據(jù)用戶名來過濾

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");// 獲取請求的參數(shù) 
    if(null != username && username.equals("chhliu")) {// 如果請求的參數(shù)不為空,且值為chhliu時,則通過 
      ctx.setSendZuulResponse(true);// 對該請求進行路由 
      ctx.setResponseStatusCode(200); 
      ctx.set("isSuccess", true);// 設值,讓下一個Filter看到上一個Filter的狀態(tài) 
      return null; 
    }else{ 
      ctx.setSendZuulResponse(false);// 過濾該請求,不對其進行路由 
      ctx.setResponseStatusCode(401);// 返回錯誤碼 
      ctx.setResponseBody("{\"result\":\"username is not correct!\"}");// 返回錯誤內(nèi)容 
      ctx.set("isSuccess", false); 
      return null; 
    } 
  } 
 
  @Override 
  public boolean shouldFilter() { 
    return true;// 是否執(zhí)行該過濾器,此處為true,說明需要過濾 
  } 
 
  @Override 
  public int filterOrder() { 
    return 0;// 優(yōu)先級為0,數(shù)字越大,優(yōu)先級越低 
  } 
 
  @Override 
  public String filterType() { 
    return "pre";// 前置過濾器 
  } 
} 

參考:http://www.dbjr.com.cn/article/133244.htm

 以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java中notify是順序喚醒還是隨機喚醒的

    Java中notify是順序喚醒還是隨機喚醒的

    這篇文章主要介紹了Java中notify是順序喚醒還是隨機喚醒的,有很多人會認為?notify?是隨機喚醒的,但它真的是隨機喚醒的嗎?帶著疑問一起進入文章了解具體的內(nèi)容吧
    2022-05-05
  • Eclipse創(chuàng)建JavaWeb工程的完整步驟記錄

    Eclipse創(chuàng)建JavaWeb工程的完整步驟記錄

    很多新手不知道Eclipse怎么創(chuàng)建Java Web項目,一起來看看吧,這篇文章主要給大家介紹了關于Eclipse創(chuàng)建JavaWeb工程的完整步驟,需要的朋友可以參考下
    2023-10-10
  • 詳細講解Java中==與equals的區(qū)別對比

    詳細講解Java中==與equals的區(qū)別對比

    這篇文章主要為大家詳細介紹了Java中==與equals的區(qū)別對比,文中有詳細的代碼示例供大家參考,具有一定的參考價值,感興趣的同學可以參考閱讀下
    2023-09-09
  • 在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法

    在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法

    這篇文章主要介紹了在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • win7 64位系統(tǒng)JDK安裝配置環(huán)境變量教程

    win7 64位系統(tǒng)JDK安裝配置環(huán)境變量教程

    這篇文章主要為大家詳細介紹了win7 64位系統(tǒng)JDK安裝配置環(huán)境變量教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    這篇文章主要介紹了Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • java操作mongodb示例分享

    java操作mongodb示例分享

    這篇文章主要介紹了java操作mongodb示例,實現(xiàn)了簡單的條件查詢和復雜的條件查詢,需要的朋友可以參考下
    2014-02-02
  • Java中迭代器Iterator的使用解析

    Java中迭代器Iterator的使用解析

    Java采用了迭代器來為各種容器提供了公共的操作接口,下面通過本文給大家分享Java中迭代器Iterator的使用解析,需要的朋友參考下吧
    2017-09-09
  • Java詳細講解依賴注入的方式

    Java詳細講解依賴注入的方式

    Idea中使用@Autowire注解會出現(xiàn)提示黃線,強迫癥患者看著很難受,使用構造器注入或者setter方法注入后可解決,下面我們一起來看看
    2022-06-06
  • JAVA Map架構和API介紹

    JAVA Map架構和API介紹

    JAVA Map架構和API介紹:Map、Map.Entry、AbstractMap、SortedMap、 NavigableMap、Dictionary。
    2013-11-11

最新評論