调整项目目录

This commit is contained in:
zengwei-cogiot
2023-09-12 09:44:19 +08:00
parent 0564483102
commit 139cf444ec
30 changed files with 15 additions and 14 deletions

View File

@@ -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";
}

View File

@@ -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>

View File

@@ -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

View File

@@ -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);

View File

@@ -58,7 +58,7 @@ public class SlidingWindowFrequencyController extends AbstractFrequencyControlSe
@Override
protected String getStrategyName() {
return FrequencyControlConstant.SLIDING_WINDOW_FREQUENCY_CONTROLLER;
return FrequencyControlConstant.SLIDING_WINDOW;
}
}

View File

@@ -49,6 +49,6 @@ public class TokenBucketFrequencyController extends AbstractFrequencyControlServ
@Override
protected String getStrategyName() {
return FrequencyControlConstant.TOKEN_BUCKET_FREQUENCY_CONTROLLER;
return FrequencyControlConstant.TOKEN_BUCKET;
}
}

View File

@@ -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;
}
}