DegradleSlot负责熔断降级,支持异常熔断和慢请求熔断,异常熔断又支持异常数量和异常比例两种策略。本文就来分析一下降级插槽和熔断器的工作原理。
在sentinel中,节点用于资源统计,有两种节点类型,默认节点(DefaultNode)和集群节点(ClusterNode),而入口节点(EntranceNode)是默认节点的子类型。入口节点是在创建上下文的时候创建的,而在插槽链的执行过程中,会创建默认节点和集群节点。
在XxlJob中执行器的注册一文中,讲到在启动时,会创建一个Netty服务器,该服务器就是与调度中心来通信的。本文就来分析一下在收到调度中心请求时,是怎么执行到我们注册的执行器方法的。
在客户端,我们只需要通过@XxlJob注解标记好执行器方法,那么运行中这些方法会自动被调用。实际上一个Spring Boot应用算是一个执行器,而应用中被@XxlJob修饰的方法被称为执行器方法。本文先来分析在启动过程中,是怎么注册执行器的,也就是怎么注册应用的。
Spring Security是基于过滤器链来处理请求的,在Spring Security的启动流程一文中,讲到Spring Security注册到servlet上下文中的过滤器是DelegatingFilterProxy,而该过滤器代理了FilterChainProxy。本文就来分析一下请求是怎么在这些过滤器中流转的。
在用户空间创建好epoll对象后,就会向其注册socket,并设置好感兴趣的事件。这个步骤是epoll的核心,是后续调用的epoll_wait打下基础。在该系统调用中会为socket设置回调函数,这样事件就绪时会自动修改epoll中的事件列表,而不用用户进程的介入,这也是为什么epoll很高效的原因。
在Linux中,不管是在服务端,还是在客户端,都会通过调用recv或recvfrom系统调用来获取对方发送来的数据,如果有数据,那么就读取并交给用户线程来处理,但如果没有数据线程则会阻塞。本文就来分析一下recv系统调用的执行过程。
epoll_wait是epoll的核心,用来获取注册到该epoll上的就绪事件。在Linux中的recv系统调用一文中分析了传统的阻塞IO是怎么进行阻塞和唤醒的,而epoll_wait也是可以限时阻塞的,那通过本文的分析可以对比一下两者的执行过程有什么区别。