피드로 돌아가기
Scaling Security Insights: how we achieved a 10x increase in global scanning capacity
Cloudflare BlogCloudflare Blog
Backend

시스템 최적화를 통한 스캔 처리량 10배 증가 및 초당 120건 달성

Scaling Security Insights: how we achieved a 10x increase in global scanning capacity

Dave Baxter2026년 6월 12일10intermediate

Context

Apache Kafka 기반의 스캔 시스템에서 파티션당 단일 Consumer 제약으로 인한 처리 병목 및 Head-of-line blocking 발생. 대규모 데이터 처리 시 Postgres DB의 잦은 Round-trip으로 인한 API Timeout 및 프로세스 Crash가 빈번한 상황.

Technical Solution

  • Batch Consume 및 Goroutine 기반 병렬 처리를 통한 단일 Consumer 내 처리 효율 극대화
  • 처리 시간이 긴 메시지를 분리하는 'Slow lane'과 'Fast lane' 구조 설계를 통한 Head-of-line blocking 제거
  • 대량 데이터 삽입 시 단일 쿼리 반복 호출 대신 UNNEST 기반의 Bulk Insert 하이브리드 방식 채택으로 DB I/O 최소화
  • 단순 리소스 증설(Scale-out) 대신 코드 레벨의 병목 지점 분석 및 아키텍처 최적화 우선 적용
  • Kafka Partition 증설로 인한 Broker 부하 증가 가능성을 배제한 효율적 리소스 관리 전략 수립

1. Consumer Group 내 처리 시간이 불균등한 메시지가 섞여 있는지 확인하고 전용 Lane 분리 검토

2. DB Insert 시 루프 내 개별 쿼리 호출 대신 Bulk Insert 또는 Batch 처리 적용 여부 점검

3. Kafka Partition 증설 전 Batch Processing 및 내부 병렬화로 처리량 개선 가능한지 확인

원문 읽기