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

Spring Cloud 服務(wù)網(wǎng)關(guān)Zuul的實(shí)現(xiàn)

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

服務(wù)網(wǎng)關(guān)的要素

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

Spring Cloud Zuul

 - 路由+過(guò)濾器
 - 核心是一系列的過(guò)濾器
 

Zuul路由配置

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

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

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

典型應(yīng)用場(chǎng)景

前置過(guò)濾器

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

后置過(guò)濾器

- 統(tǒng)計(jì)
- 日志

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

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

根據(jù)用戶名來(lái)過(guò)濾

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

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

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中notify是順序喚醒還是隨機(jī)喚醒的

    Java中notify是順序喚醒還是隨機(jī)喚醒的

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

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

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

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

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

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

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

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

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

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

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

    java操作mongodb示例分享

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

    Java中迭代器Iterator的使用解析

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

    Java詳細(xì)講解依賴注入的方式

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

    JAVA Map架構(gòu)和API介紹

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

最新評(píng)論