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在处理高负载和大规模并发的情况下表现出色,并且具有较低的资源消耗。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.