SnowJena#

  


What#

Distributed lock-free flow limiting framework based on token bucket algorithm, support fuse downgrading, support dynamic configuration rules, support visual monitoring, out of the box.

Noun#

Current limiting #

When we design a function and are ready to go online, this function will consume some resources and the processing limit is 3000 QPS per second. But what should we do if the actual situation is higher than 3000 QPS? This project provides that when QPS exceeds a certain set threshold, the system can directly reject or block two ways to deal with it, so as to play the role of flow control.

The drop #

Those of you who have worked with Spring Cloud and Service Mesh know the concept of fuse downgrading. For example, service A achieves tens of thousands of QPS per second, but service B cannot achieve tens of thousands of QPS per second at this time. Then, how to ensure that service B can still work normally when service A calls service B frequently? A common situation is that when service A calls service B, the response time of service B is too long due to the failure of service B to meet the requirements of high frequency calls, leading to the response time of service A, which will have A chain reaction affecting all applications on the whole chain of dependencies. In this case, the method of fusing and degrading is needed. This project fuses or degrades service customizations by setting a fast fail policy.

Shaping #

Usually, the flow we encounter has the characteristics of randomness, irregularity and uncontrolled, but the processing capacity of the system is often limited. We need to shape the flow according to the processing capacity of the system, that is, regularization, so as to deal with the flow according to our needs. The local current limiting of this project has the function of flow plasticity and strictly controls the processing time interval of the system.

Load protection #

Usually, the system runs smoothly, but in the event of a rush, it is found that the load of the machine is very high. At this time, the load protection of the system is very important to prevent avalanches. This project provides the corresponding protection mechanism, so that the system inlet flow and system load to achieve a balance, to ensure that the system within the capacity to handle the maximum number of requests. There is a balance between the requests that the system can handle and the requests that are allowed in.

Preview#