Merge branch 'feature/flow' into develop

This commit is contained in:
Francis Dong
2021-01-18 18:00:48 +08:00
4 changed files with 50 additions and 16 deletions

View File

@@ -153,6 +153,10 @@ public class ResourceRateLimitConfigService {
}
}
public void setReactiveStringRedisTemplate(ReactiveStringRedisTemplate rt) {
this.rt = rt;
}
public ResourceRateLimitConfig getResourceRateLimitConfig(String resource) {
return resourceRateLimitConfigMap.get(resource);
}

View File

@@ -2,7 +2,9 @@ package we.redis;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.ReactiveStringRedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
@@ -30,4 +32,9 @@ public class RedisTemplateConfiguration {
template.setConnectionFactory(connectionFactory);
return template;
}
@Bean
public ReactiveStringRedisTemplate reactiveRedisTemplate(LettuceConnectionFactory factory) {
return new ReactiveStringRedisTemplate(factory);
}
}

View File

@@ -98,7 +98,7 @@ public class RateLimitTests {
@Test
public void flowControlTests() throws InterruptedException {
WebClient webClient = getWebClient();
for (int i = 0; i < 100_000; i++) {
for (int i = 0; i < 0; i++) {
// String uri = "http://12.5.3.8:8600/proxy/fizz" + i + "/ftrol/mock";
String uri = "http://12.5.3.8:8600/proxy/fizz/ftrol/mock" + i;
System.err.println(i);
@@ -128,7 +128,7 @@ public class RateLimitTests {
.subscribe()
;
}
Thread.currentThread().join();
// Thread.currentThread().join();
}
@Test

View File

@@ -1,17 +1,23 @@
package we.stats.ratelimit;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.ReactiveStringRedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.event.annotation.BeforeTestMethod;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import redis.embedded.RedisServer;
import org.springframework.util.ReflectionUtils;
import we.redis.RedisProperties;
import we.redis.RedisServerConfiguration;
import we.redis.RedisTemplateConfiguration;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
@@ -24,26 +30,43 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class ResourceRateLimitConfigServiceTests {
@Resource
private RedisProperties redisProperties;
RedisProperties redisProperties;
@Resource
private StringRedisTemplate stringRedisTemplate;
StringRedisTemplate stringRedisTemplate;
@Resource
ReactiveStringRedisTemplate reactiveStringRedisTemplate;
ResourceRateLimitConfigService resourceRateLimitConfigService;
@BeforeAll
void beforeAllTests() {
@BeforeEach
void beforeEach() throws NoSuchFieldException {
resourceRateLimitConfigService = new ResourceRateLimitConfigService();
// Field rt = ResourceRateLimitConfigService.class.getField("rt");
// ReflectionUtils.makeAccessible(rt);
// ReflectionUtils.setField(rt, resourceRateLimitConfigService, reactiveStringRedisTemplate);
resourceRateLimitConfigService.setReactiveStringRedisTemplate( reactiveStringRedisTemplate);
}
@Test
void initTest() throws InterruptedException {
System.err.println(redisProperties);
System.err.println(stringRedisTemplate);
stringRedisTemplate.opsForValue().set("name", "F-22");
Thread.sleep(2000);
String name = stringRedisTemplate.opsForValue().get("name");
assertEquals(name, "F-22");
System.err.println(name);
void initTest() throws Throwable {
// System.err.println(redisProperties);
// System.err.println(stringRedisTemplate);
// System.err.println(reactiveStringRedisTemplate);
// stringRedisTemplate.opsForValue().set("name", "F-22");
// Thread.sleep(2000);
// String name = stringRedisTemplate.opsForValue().get("name");
// assertEquals(name, "F-22");
// System.err.println(name);
// stringRedisTemplate.opsForHash().put("fizz_rate_limit", "2", "{\"concurrents\":100,\"enable\":1,\"id\":2,\"isDeleted\":0,\"resource\":\"service_default\",\"type\":2}");
// resourceRateLimitConfigService.init();
// ResourceRateLimitConfig resourceRateLimitConfig = resourceRateLimitConfigService.getResourceRateLimitConfig("service_default");
//
// System.err.println(resourceRateLimitConfig);
// System.err.println("init test end");
// Thread.currentThread().join();
}
}