Skip to content

Commit 61ec0df

Browse files
committed
네이밍 수정
1 parent c840044 commit 61ec0df

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

rate-limiter/src/main/java/io/github/gunkim/ratelimiter/Application.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package io.github.gunkim.ratelimiter;
22

33

4-
import io.github.gunkim.ratelimiter.bucket.TokenBucket;
4+
import io.github.gunkim.ratelimiter.bucket.TokenBucketRateLimiter;
55

66
public class Application {
77
public static void main(String[] args) {
88
//4초에 2개 요청에 대한 처리율 제한 설정
99
final int bucketSize = 20;
1010
final long refillRate = 60_000L;
11-
var bucket = new TokenBucket(bucketSize, refillRate);
11+
var bucket = new TokenBucketRateLimiter(bucketSize, refillRate);
1212

1313
while (true) {
1414
processRequest(bucket);
1515
sleep(1_000);
1616
}
1717
}
1818

19-
private static void processRequest(TokenBucket bucket) {
19+
private static void processRequest(TokenBucketRateLimiter bucket) {
2020
bucket.request(() -> System.out.println("Request"));
2121
}
2222

rate-limiter/src/main/java/io/github/gunkim/ratelimiter/bucket/LeakyBucket.java renamed to rate-limiter/src/main/java/io/github/gunkim/ratelimiter/bucket/LeakyBucketRateLimiter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
* <p>
1818
* 고정된 처리율로 안정적인 트래픽 처리엔 좋지만, 트래픽이 몰리게 되면 요청이 버려질 수 있음.
1919
*/
20-
public class LeakyBucket implements AutoCloseable, Bucket {
21-
private static final Logger logger = LoggerFactory.getLogger(LeakyBucket.class);
20+
public class LeakyBucketRateLimiter implements AutoCloseable, Bucket {
21+
private static final Logger logger = LoggerFactory.getLogger(LeakyBucketRateLimiter.class);
2222

2323
private final Queue<Runnable> queue;
2424
private final int bucketSize;
2525
private final int batchSize;
2626

2727
private final ScheduledExecutorService executorService;
2828

29-
public LeakyBucket(int bucketSize, long scheduleInterval, int batchSize) {
29+
public LeakyBucketRateLimiter(int bucketSize, long scheduleInterval, int batchSize) {
3030
this.bucketSize = bucketSize;
3131
this.batchSize = batchSize;
3232

rate-limiter/src/main/java/io/github/gunkim/ratelimiter/bucket/TokenBucket.java renamed to rate-limiter/src/main/java/io/github/gunkim/ratelimiter/bucket/TokenBucketRateLimiter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
* 구현이 쉬우며 많은 기업이 이용하고 있다. 하지만 안정적인 처리를 보장하진 못한다.
1818
* 예를 들어, 초반에 트래픽이 몰려 모든 토큰이 소비된다면 이후 요청은 토큰이 리필될 때까지 처리되지 못한다.
1919
*/
20-
public class TokenBucket implements AutoCloseable, Bucket {
21-
private static final Logger logger = LoggerFactory.getLogger(TokenBucket.class);
20+
public class TokenBucketRateLimiter implements AutoCloseable, Bucket {
21+
private static final Logger logger = LoggerFactory.getLogger(TokenBucketRateLimiter.class);
2222

2323
private final ScheduledExecutorService executorService;
2424
private final AtomicInteger tokens;
2525

26-
public TokenBucket(int bucketSize, long refillRate) {
26+
public TokenBucketRateLimiter(int bucketSize, long refillRate) {
2727
this.executorService = Executors.newSingleThreadScheduledExecutor();
2828
this.tokens = new AtomicInteger(bucketSize);
2929

rate-limiter/src/test/java/io/github/gunkim/ratelimiter/bucket/TokenBucketTest.java renamed to rate-limiter/src/test/java/io/github/gunkim/ratelimiter/bucket/TokenBucketRateLimiterTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import static org.mockito.Mockito.times;
1414

1515
@DisplayName("TokenBucket은")
16-
class TokenBucketTest {
16+
class TokenBucketRateLimiterTest {
1717
private Runnable request;
1818

1919
@BeforeEach
@@ -23,15 +23,15 @@ void setUp() {
2323

2424
@Test
2525
void 토큰이_없는_경우_요청이_무시된다() {
26-
try (var tokenBucket = new TokenBucket(0, 20_000)) {
26+
try (var tokenBucket = new TokenBucketRateLimiter(0, 20_000)) {
2727
tokenBucket.request(request);
2828
Mockito.verify(request, never()).run();
2929
}
3030
}
3131

3232
@Test
3333
void 토큰이_최대치일_때_모든_요청이_처리된다() {
34-
try (var tokenBucket = new TokenBucket(10, 20_000)) {
34+
try (var tokenBucket = new TokenBucketRateLimiter(10, 20_000)) {
3535
for (int i = 0; i < 10; i++) {
3636
tokenBucket.request(request);
3737
}
@@ -41,7 +41,7 @@ void setUp() {
4141

4242
@Test
4343
void 토큰이_모두_사용된_후_나머지_요청이_무시된다() {
44-
try (var tokenBucket = new TokenBucket(3, 20_000)) {
44+
try (var tokenBucket = new TokenBucketRateLimiter(3, 20_000)) {
4545
for (int i = 0; i < 6; i++) {
4646
tokenBucket.request(request);
4747
}
@@ -51,7 +51,7 @@ void setUp() {
5151

5252
@Test
5353
void 다중_스레드_환경에서_정상_작동한다() {
54-
try (var tokenBucket = new TokenBucket(100, 5_000)) {
54+
try (var tokenBucket = new TokenBucketRateLimiter(100, 5_000)) {
5555
ExecutorService taskExecutor = Executors.newFixedThreadPool(10);
5656
for (int i = 0; i < 150; i++) {
5757
taskExecutor.execute(() -> tokenBucket.request(request));

0 commit comments

Comments
 (0)