Kafka - 이벤트 기반의 비동기 작업 처리 구조로 알림 기능 구현하기 (2)
·
dev/infra
Kafka를 이용한 확장성 문제 해결Kafka는 애플리케이션 외부에서 동작하는 로그 시스템이므로 메시지의 저장 상태를 유지하는 데에 애플리케이션 JVM의 자원을 소모하지 않는다. 따라서 대량의 메시지가 발생하더라도 애플리케이션 처리량에 직접적인 영향을 주지 않는다. 이런 측면에서 Kafka는 처리량 문제를 완화하기도 하지만, 근본적으로 대량의 이벤트 처리를 제어할 수 있는 구조적 수단을 제공하는 것이다. 실제 메시지 처리는 애플리케이션 내부에서 일어나므로 높은 처리량의 핵심은 어느 메시지(작업)를 누가, 언제 소비(처리)하느냐에 달려 있다. 즉, 한정된 JVM 자원을 최대 효율로 활용하는 것은 전적으로 오케스트레이션 방식에 의존한다. Kafka는 자체적으로 대량의 작업을 안정적으로 분배하고 병렬 처리할 ..