슬라이딩 윈도우 로그 처리율 제한에 대해서 정리하려고 합니다.Sliding Window Log Rate Limiter는 뭘까?Fixed Window(고정 윈도우)와 달리 고정된 시간 구간이 아닌 현재 시점을 기준으로 과거 N분간의 요청 기록을 실시간으로 추적하는 방식 입니다. 5분 슬라이딩 윈도우 예시는 다음과 같습니다. 현재 시각이 09:03:30 이라면09:03:30 기준으로 08:58:30 ~ 구간의 요청들을 확인해서09:04:00이 되면 08:59:00 ~ 09:04:00 구간으로 윈도우를 슬라이딩합니다. 동작원리마찬가지로 사이드 프로젝트에서 슬랙 알림 중복 발송 방지를 위해 사용하였습니다.Fixed Window의 문제점들을 해결하기 위해 개선된 방식을 적용했습니다. ConcurrentHashMa..
Rate limiting
1편 - 예외 알림 슬랙 연동으로 가볍게 운영하기https://buly.kr/9tBJYQC 들어가며지난 글에서는 Slack 알림 시스템을 만들고, 동일한 예외가 반복해서 발생하더라도 알림이 중복으로 발생하지 않도록 처리율 제한 클래스를 만들었습니다. (SimpleRateLimiter) 단일 서버 환경에서는 기대한 대로 잘 작동했습니다. 근데 배포 전에 한번 더 생각해볼 점이 있다고 생각했습니다. 잠재적 문제점들에 대해서 분석한 점을 정리해보겠습니다. 어떤 문제가 예상될까?서버별 독립 동작private final ConcurrentHashMap alerts = new ConcurrentHashMap();ConcurrentHashMap이 서버 간 데이터 동기화가 불가능하다는 직접적인 공식 문서는 없지만, J..