spring gateway是阻塞的嗎?
一、spring gateway是阻塞的嗎?
Spring Gateway默認是非阻塞的,它基于Reactor模式和Project Reactor構建,使用WebFlux框架支持非阻塞I/O操作。Gateway提供了基于異步編程模型的路由、過濾和處理請求的功能,能夠實現高并發的請求處理。通過使用WebFlux框架,Gateway能夠利用少量的線程處理大量的并發請求,提高系統的吞吐量和性能。因此,Spring Gateway是非阻塞的,能夠更有效地處理大規模并發請求。
二、web過濾器的步驟?
1、新建一個類,實現Filter接口
2、實現doFilter()方法,打印一句話,來證明能夠進行攔截
3、在web.xml中進行配置(參照Servlet配置)
4、訪問一個頁面,看看能不能攔截
1>
package com.test.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Demo1Filter implements Filter {
private FilterConfig filterConfig;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("Demo1過濾前");
System.out.println(filterConfig.getInitParameter("param1"));
chain.doFilter(request, response);//放行。讓其走到下個鏈或目標資源中
System.out.println("Demo1過濾后");
}
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化了");
this.filterConfig = filterConfig;
}
public void destroy() {
System.out.println("銷毀了");
}
}
三、Webflux底層是nio嗎?
是的,Webflux底層使用的是基于NIO(非阻塞I/O)的技術。NIO是一種高效的I/O模型,它允許在單個線程上處理多個并發連接,而不需要為每個連接創建一個獨立的線程。Webflux利用了NIO的特性,通過使用Reactor模式和異步編程,實現了高性能的非阻塞處理,能夠處理大量的并發請求。
這使得Webflux在處理高負載和大規模并發的情況下表現出色,并且具有較低的資源消耗。
本網站文章僅供交流學習 ,不作為商用, 版權歸屬原作者,部分文章推送時未能及時與原作者取得聯系,若來源標注錯誤或侵犯到您的權益煩請告知,我們將立即刪除.