mirror of
https://github.com/zongzibinbin/MallChat.git
synced 2026-03-13 21:53:41 +08:00
调整项目目录
This commit is contained in:
@@ -2,9 +2,9 @@ package com.abin.mallchat.common;
|
||||
|
||||
public interface FrequencyControlConstant {
|
||||
|
||||
String TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER = "TotalCountWithInFixTime";
|
||||
String TOTAL_COUNT_WITH_IN_FIX_TIME = "TotalCountWithInFixTime";
|
||||
|
||||
String SLIDING_WINDOW_FREQUENCY_CONTROLLER = "SlidingWindow";
|
||||
String SLIDING_WINDOW = "SlidingWindow";
|
||||
|
||||
String TOKEN_BUCKET_FREQUENCY_CONTROLLER = "TokenBucket";
|
||||
String TOKEN_BUCKET = "TokenBucket";
|
||||
}
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>mallchat</artifactId>
|
||||
<artifactId>mallchat-tools</artifactId>
|
||||
<groupId>com.abin.mallchat</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>frequency-control</artifactId>
|
||||
<artifactId>mallchat-frequency-control</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@@ -16,7 +16,7 @@ public @interface FrequencyControl {
|
||||
/**
|
||||
* 策略
|
||||
*/
|
||||
String strategy() default FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER;
|
||||
String strategy() default FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME;
|
||||
|
||||
/**
|
||||
* 窗口大小,默认 5 个 period
|
||||
@@ -37,7 +37,7 @@ public class FrequencyControlAspect {
|
||||
Method method = ((MethodSignature) joinPoint.getSignature()).getMethod();
|
||||
FrequencyControl[] annotationsByType = method.getAnnotationsByType(FrequencyControl.class);
|
||||
Map<String, FrequencyControl> keyMap = new HashMap<>();
|
||||
String strategy = FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER;
|
||||
String strategy = FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME;
|
||||
for (int i = 0; i < annotationsByType.length; i++) {
|
||||
// 获取频控注解
|
||||
FrequencyControl frequencyControl = annotationsByType[i];
|
||||
@@ -57,12 +57,12 @@ public class FrequencyControlAspect {
|
||||
strategy = frequencyControl.strategy();
|
||||
}
|
||||
// 将注解的参数转换为编程式调用需要的参数
|
||||
if (FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER.equals(strategy)) {
|
||||
if (FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME.equals(strategy)) {
|
||||
// 调用编程式注解 固定窗口
|
||||
List<FrequencyControlDTO> frequencyControlDTOS = keyMap.entrySet().stream().map(entrySet -> buildFixedWindowDTO(entrySet.getKey(), entrySet.getValue())).collect(Collectors.toList());
|
||||
return FrequencyControlUtil.executeWithFrequencyControlList(strategy, frequencyControlDTOS, joinPoint::proceed);
|
||||
|
||||
} else if (FrequencyControlConstant.TOKEN_BUCKET_FREQUENCY_CONTROLLER.equals(strategy)) {
|
||||
} else if (FrequencyControlConstant.TOKEN_BUCKET.equals(strategy)) {
|
||||
// 调用编程式注解 令牌桶
|
||||
List<TokenBucketDTO> frequencyControlDTOS = keyMap.entrySet().stream().map(entrySet -> buildTokenBucketDTO(entrySet.getKey(), entrySet.getValue())).collect(Collectors.toList());
|
||||
return FrequencyControlUtil.executeWithFrequencyControlList(strategy, frequencyControlDTOS, joinPoint::proceed);
|
||||
@@ -58,7 +58,7 @@ public class SlidingWindowFrequencyController extends AbstractFrequencyControlSe
|
||||
|
||||
@Override
|
||||
protected String getStrategyName() {
|
||||
return FrequencyControlConstant.SLIDING_WINDOW_FREQUENCY_CONTROLLER;
|
||||
return FrequencyControlConstant.SLIDING_WINDOW;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -49,6 +49,6 @@ public class TokenBucketFrequencyController extends AbstractFrequencyControlServ
|
||||
|
||||
@Override
|
||||
protected String getStrategyName() {
|
||||
return FrequencyControlConstant.TOKEN_BUCKET_FREQUENCY_CONTROLLER;
|
||||
return FrequencyControlConstant.TOKEN_BUCKET;
|
||||
}
|
||||
}
|
||||
@@ -58,6 +58,6 @@ public class TotalCountWithInFixTimeFrequencyController extends AbstractFrequenc
|
||||
|
||||
@Override
|
||||
protected String getStrategyName() {
|
||||
return FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER;
|
||||
return FrequencyControlConstant.TOTAL_COUNT_WITH_IN_FIX_TIME;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user