limiter SpringBoot Edition
Support function:
- Limit Traffic
- Limited Service
Before Current Limiting, Please Press And Measure The QPS For Accurate Current Limiting
Accurate Flow Restriction Ensures That The Service Will Not Be Shut Down Or Restarted Due To Excessive QPS, And The Service Cluster Is More Robust
The Current Limiting Operation Should Be Divided Into Transactional Operation And Non Transactional Operation, And The QPS Gap Between Them Is Usually Large
Limit Service, For Service That May Cause Delay Or High Error Rate, To Ensure The Security Of Services
<!--Adding dependencies to pom. XML-->
<dependency>
<artifactId>limiter-spring-boot-starter</artifactId>
<groupId>com.github.thierrysquirrel</groupId>
<version>2.1.1.4-RELEASE</version>
</dependency>
@SpringBootApplication
public class LimiterApplication{
public static void main(String[] args){
SpringApplication.run(DemoApplication.class, args);
}
}
@Slf4j
@Component
public class LimitFallback {
public String limit(String limit) {
log.error (limit);
return limit;
}
}
@RestController
public class limitController {
@LimitTraffic (limitName = "limit", permitsPerSecond = 2000, fallbackClass = LimitFallback.class, fallbackMethod = "limit")
public String limit(@RequestParam("limit") String limit) {
return limit;
}
}
@Slf4j
@Component
public class LimitedServiceFallback {
public String limitedService(String limitedService) {
log.error (limitedService);
return limitedService;
}
}
@RestController
public class LimitedServiceController {
@LimitedService (fallbackClass = LimitedServiceFallback.class, fallbackMethod = "limitedService")
public String limitedService(@RequestParam("limitedService") String limitedService) {
return limitedService;
}
}