成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Cloud 服務(wù)網(wǎng)關(guān)Zuul

zollero / 3316人閱讀

摘要:服務(wù)網(wǎng)關(guān)的要素穩(wěn)定性安全性性能,并發(fā)性擴(kuò)展性路由過濾器核心是一系列的過濾器路由配置權(quán)限設(shè)置這個(gè)名稱可以隨便填敏感頭過濾簡(jiǎn)潔寫法不對(duì)外部訪問代表集合查看所有的路由規(guī)則配置的動(dòng)態(tài)注入也可以寫入啟動(dòng)類中典型應(yīng)用場(chǎng)景前置過濾器限流鑒權(quán)

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

穩(wěn)定性

安全性

性能,并發(fā)性

擴(kuò)展性
Spring Cloud Zuul

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

Zuul路由配置
management:
    security:
        enabled: false // 權(quán)限設(shè)置
zuul: 
    routes:
        # myProduct:    // 這個(gè)名稱可以隨便填
        #     path: /myProduct/**
        #     serviceId: product
        #     sensitiveHeader: //敏感頭過濾
        # 簡(jiǎn)潔寫法
        product: /myProduct/**
    ignored-patterns: 
        - /**/product/listForOrder // 不對(duì)外部訪問(-代表set集合)
查看所有的路由規(guī)則:localhost:port/application/routes
{
    /myProduct/**: "product",
    /config/**: "config",
    /product/**: "product",
}
   
Zuul配置的動(dòng)態(tài)注入(也可以寫入啟動(dòng)類中)
@Compoent
public class ZuulConfig{
    @ConfigurationProperties("zuul")
    @RefreshScope
    public ZuulProperties zuulProperties(){
        return new ZuulProperties();
    }
}
典型應(yīng)用場(chǎng)景

前置過濾器

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

后置過濾器

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

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

1、繼承ZuulFilter類,為了驗(yàn)證Filter的特性,我們這里創(chuàng)建3個(gè)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");// 獲取請(qǐng)求的參數(shù)  
        if(null != username && username.equals("chhliu")) {// 如果請(qǐng)求的參數(shù)不為空,且值為chhliu時(shí),則通過  
            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);// 過濾該請(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í)行該過濾器,此處為true,說明需要過濾  
    }  
  
    @Override  
    public int filterOrder() {  
        return 0;// 優(yōu)先級(jí)為0,數(shù)字越大,優(yōu)先級(jí)越低  
    }  
  
    @Override  
    public String filterType() {  
        return "pre";// 前置過濾器  
    }  
} 

參考:https://www.cnblogs.com/a8457...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75084.html

相關(guān)文章

  • SpringCloud(第 022 篇)Zuul 網(wǎng)關(guān)服務(wù)的regexmapper屬性測(cè)試, 類似

    摘要:地址可以查看該微服務(wù)網(wǎng)關(guān)代理了多少微服務(wù)的。微服務(wù)已啟動(dòng)使用提供和之間的綁定它使用正則表達(dá)式組來從提取變量然后注入到路由表達(dá)式中。 SpringCloud(第 022 篇)Zuul 網(wǎng)關(guān)微服務(wù)的 regexmapper 屬性測(cè)試, 類似測(cè)試 zuul 的自定義路徑規(guī)則一樣 - 一、大致介紹 1、本章節(jié)將 Zuul 的 regexmapper 屬性單獨(dú)拿出來,主要是這種配置規(guī)則,可以在一...

    cyqian 評(píng)論0 收藏0
  • SpringCloud(第 020 篇)Zuul 網(wǎng)關(guān)模塊添加 listOfServers 屬性,達(dá)

    摘要:注意注解能注冊(cè)到服務(wù)上,是因?yàn)樵撟⒔獍丝蛻舳说淖⒔猓撌且粋€(gè)復(fù)合注解。地址可以查看該微服務(wù)網(wǎng)關(guān)代理了多少微服務(wù)的。 SpringCloud(第 020 篇)Zuul 網(wǎng)關(guān)模塊添加 listOfServers 屬性,達(dá)到客戶端負(fù)載均衡的能力 - 一、大致介紹 1、本章節(jié)添加另外一個(gè)屬性 listOfServers 來給 zuul 賦上異樣的功能色彩,提供負(fù)載均衡的能力; 2、而其實(shí)說...

    Dogee 評(píng)論0 收藏0
  • Spring Cloud Zuul中使用Swagger匯總API接口文檔

    摘要:代碼示例本文示例讀者可以通過查看下面?zhèn)}庫的中的三個(gè)項(xiàng)目如果您對(duì)這些感興趣,歡迎收藏轉(zhuǎn)發(fā)給予支持以下專題教程也許您會(huì)有興趣基礎(chǔ)教程基礎(chǔ)教程 有很多讀者問過這樣的一個(gè)問題:雖然使用Swagger可以為Spring MVC編寫的接口生成了API文檔,但是在微服務(wù)化之后,這些API文檔都離散在各個(gè)微服務(wù)中,是否有辦法將這些接口都整合到一個(gè)文檔中?之前給大家的回復(fù)都只是簡(jiǎn)單的說了個(gè)思路,昨天正好...

    Salamander 評(píng)論0 收藏0
  • SpringCloud(第 018 篇)Zuul 服務(wù) API 網(wǎng)關(guān)服務(wù)之代理與反向代理

    摘要:注意注解能注冊(cè)到服務(wù)上,是因?yàn)樵撟⒔獍丝蛻舳说淖⒔?,該是一個(gè)復(fù)合注解。地址可以查看該微服務(wù)網(wǎng)關(guān)代理了多少微服務(wù)的。 SpringCloud(第 018 篇)Zuul 服務(wù) API 網(wǎng)關(guān)微服務(wù)之代理與反向代理 - 一、大致介紹 1、API 服務(wù)網(wǎng)關(guān)顧名思義就是統(tǒng)一入口,類似 nginx、F5 等功能一樣,統(tǒng)一代理控制請(qǐng)求入口,弱化各個(gè)微服務(wù)被客戶端記憶功能; 2、本章節(jié)主要講解了使用...

    YancyYe 評(píng)論0 收藏0
  • 深入理解Spring Cloud與微服務(wù)構(gòu)建【二】 - 2.2 Spring Cloud

    摘要:負(fù)載均衡組件是一個(gè)負(fù)載均衡組件,它通常和配合使用。和配合,很容易做到負(fù)載均衡,將請(qǐng)求根據(jù)負(fù)載均衡策略分配到不同的服務(wù)實(shí)例中。和配合,在消費(fèi)服務(wù)時(shí)能夠做到負(fù)載均衡。在默認(rèn)的情況下,和相結(jié)合,能夠做到負(fù)載均衡智能路由。 2.2.1 簡(jiǎn)介 Spring Cloud 是基于 Spring Boot 的。 Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新 Web 框架, 它主要的特點(diǎn)...

    Rocko 評(píng)論0 收藏0
  • springCloud學(xué)習(xí)4(Zuul服務(wù)路由)

    摘要:但是如果將負(fù)載均衡器置于所有服務(wù)前便不是一個(gè)好主意,會(huì)造成瓶頸。服務(wù)超時(shí)使用的和庫來進(jìn)行請(qǐng)求。支持以下四種過濾器前置過濾器在將請(qǐng)求發(fā)送到目的地之前被調(diào)用。通常用于記錄從目標(biāo)服務(wù)返回的響應(yīng)處理錯(cuò)誤或?qū)徍嗣舾行畔ⅰ? showImg(https://segmentfault.com/img/remote/1460000019531578); springcloud 總集:https://ww...

    wuaiqiu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<