成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Cloud內置的Zuul過濾器詳解

云計算
我是51CTO學院講師周立,在51CTO學院“4.20 IT充電節”(4月19~20日)到來之際,和大家分享一下《Spring Cloud內置的Zuul過濾器應用》的經驗。

[[188309]]

我是51CTO學院講師周立,在51CTO學院“4.20 IT充電節”(4月19~20日)到來之際,和大家分享一下《Spring Cloud內置的Zuul過濾器應用》的經驗。正文來啦~~~

Spring Cloud默認為Zuul編寫并啟用了一些過濾器,這些過濾器有什么作用呢?我們不妨按照@EnableZuulServer、@EnableZuulProxy兩個注解進行展開,相信大家對這兩個注解都不陌生(至少都見過吧)。如果覺得陌生也沒有關系,可將@EnableZuulProxy簡單理解為@EnableZuulServer的增強版。事實上,當Zuul與Eureka、Ribbon等組件配合使用時,@EnableZuulProxy是我們常用的注解。

在Spring Cloud的官方文檔中,只說@EnableZuulServer是一個“空白”的Zuul,那么究竟空白在什么地方呢?與@EnableZuulProxy到底有什么區別呢?諸多問題,都將在本文找到答案。

在此之前,我們先理解什么是RequestContext:

RequestContext:用于在過濾器之間傳遞消息。它的數據保存在每個請求的ThreadLocal中。它用于存儲請求路由到哪里、錯誤、HttpServletRequest、HttpServletResponse都存儲在RequestContext中。RequestContext擴展了ConcurrentHashMap,所以,任何數據都可以存儲在上下文中。

@EnableZuulServer過濾器

一、pre類型過濾器

(1) ServletDetectionFilter:該過濾器用于檢查請求是否通過Spring Dispatcher。檢查后,通過isDispatcherServletRequest設置布爾值。

(2) FormBodyWrapperFilter:解析表單數據,并為請求重新編碼。

(3) DebugFilter:顧名思義,調試用的過濾器,可以通過zuul.debug.request=true,或在請求時,加上debug=true的參數,例如$ZUUL_HOST:ZUUL_PORT/path?debug=true開啟該過濾器。這樣,該過濾器就會把RequestContext.setDebugRouting()、RequestContext.setDebugRequest()設為true。

二、route類型過濾器

SendForwardFilter:該過濾器使用Servlet RequestDispatcher轉發請求,轉發位置存儲在RequestContext.getCurrentContext().get("forward.to")中??梢詫⒙酚稍O置成:

  1. zuul: 
  2. routes: 
  3. abc:  
  4. path: /abc/** 
  5. url: forward:/abc 

 

然后訪問$ZUUL_HOST:ZUUL_PORT/abc,觀察該過濾器的執行過程。

三、post類型過濾器

SendResponseFilter:將Zuul所代理的微服務的響應寫入當前響應。

四、error類型過濾器

SendErrorFilter:如果RequestContext.getThrowable()不為null,那么默認就會轉發到/error,也可以設置error.path屬性修改默認的轉發路徑。

@EnableZuulProxy過濾器

如果使用注解@EnableZuulProxy,那么除上述過濾器之外,Spring Cloud還會安裝以下過濾器:

一、pre類型過濾器

PreDecorationFilter:該過濾器根據提供的RouteLocator確定路由到的地址,以及怎樣去路由。該路由器也可為后端請求設置各種代理相關的header。

二、route類型過濾器

(1) RibbonRoutingFilter:該過濾器使用Ribbon,Hystrix和可插拔的HTTP客戶端發送請求。serviceId在RequestContext.getCurrentContext().get("serviceId")中。該過濾器可使用不同的HTTP客戶端,例如

Apache HttpClient:默認的HTTP客戶端

SquareupOkHttpClient v3:如需使用該客戶端,需保證com.squareup.okhttp3的依賴在classpath中,并設置ribbon.okhttp.enabled = true。

Netflix Ribbon HTTP client:設置ribbon.restclient.enabled = true即可啟用該HTTP客戶端。需要注意的是,該客戶端有一定限制,例如不支持PATCH方法,另外,它有內置的重試機制。

(2) SimpleHostRoutingFilter:該過濾器通過Apache HttpClient向指定的URL發送請求。URL在RequestContext.getRouteHost()中。

51CTO學院 4.20 IT充電節

(19-20號兩天,100門視頻課程免單搶,更有視頻課程會員享6折,非會員享7折,套餐折上8折,微職位立減2000元鉅惠)

活動鏈接:http://edu.51cto.com/activity/lists/id-47.html?wenzhang

相關視頻教程:

Spring Cloud微服務實戰

http://edu.51cto.com/course/course_id-7348.html 

責任編輯:龐桂玉 來源: 51CTO.com
相關推薦

2021-01-14 08:13:39

Spring Clou應用內置過濾器

2017-05-04 22:30:17

Zuul過濾器微服務

2023-01-26 01:41:27

核心全局過濾器

2022-05-13 08:23:07

Zuul微服務Zuul過濾器

2022-02-21 23:58:49

Spring過濾器順序值

2023-04-14 09:01:25

2009-07-08 16:07:04

Servlet過濾器配

2011-06-29 16:14:59

Qt 事件 過濾器

2016-12-07 09:56:13

JavaFilter過濾器

2023-07-24 08:00:56

客戶端訪問指定

2017-09-15 23:29:53

Spring Clou微服務架構過濾器

2024-04-03 08:08:15

謂詞網關開發

2021-07-05 15:22:03

Servlet過濾器客戶端

2024-01-05 09:04:35

隆過濾器數據結構哈希函數

2009-06-18 10:13:00

Hibernate過濾

2009-07-08 17:33:37

Servlet過濾器

2024-11-04 08:45:48

布隆過濾器元數據指紋值

2009-07-08 15:30:56

Servlet過濾器

2009-09-29 13:55:23

Hibernate設置

2009-07-14 09:09:08

Swing模型過濾器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人久久大香线 | 久草视频在线播放 | 视频在线观看一区二区 | 一区天堂| 欧美国产精品一区二区 | 国产精品精品久久久 | 欧美极品一区二区 | 久在线| 成人在线免费观看 | 超碰520 | 国产精品成人品 | 久久久久精 | 九九久久免费视频 | 久久久网| 777毛片| 一级片在线视频 | 欧美一区久久 | 国产精品国产成人国产三级 | 精品亚洲第一 | 午夜视频在线观看网站 | 国产福利视频 | 日韩欧美三级 | 国产在线精品一区二区 | 午夜男人的天堂 | 亚洲精品视频在线看 | 国产精品久久久久久久久免费樱桃 | 在线成人一区 | 青青草这里只有精品 | 日韩一区二区在线播放 | 国产成人一区二区三区 | 天堂av中文 | 2019天天操| 91麻豆产精品久久久久久夏晴子 | 日韩中文字幕在线观看 | 亚洲国产成人精品女人久久久 | 亚洲男人天堂网 | 成人在线视频一区二区三区 | 成年人在线 | 怡红院免费的全部视频 | 特一级毛片 | 免费能直接在线观看黄的视频 |