Apache Kafka는 대용량의 실시간 데이터 스트림 처리를 위한 분산 메시징 시스템입니다.
Kafka를 통해 서버 간 비동기 통신을 구현하고, 대량의 데이터를 빠르고 안정적으로 처리할 수 있습니다.
correlationId
같은 식별 정보를 포함하고 있어, 나중에 처리 결과를 정확히 매칭할 수 있습니다.correlationId
가 포함됩니다.correlationId
를 확인하여 관련된 결과만을 처리합니다.메인 서버와 트래픽 서버를 각각 여러 대 사용할 때, 각 서버 조합별로 별도의 컨슈머 그룹 ID
를 설정하는 것이 중요합니다.
이렇게 설정함으로써 메시지는 정확한 대상에 의해 처리되고, 메인 서버에서는 올바른 처리 결과를 받아 클라이언트에게 전달할 수 있습니다.
컨슈머 그룹 ID를 설정하면, Kafka는 여러 가지 최적화를 수행할 수 있습니다.
파티션 할당
컨슈머 그룹 내에서 각 컨슈머는 유일한 파티션을 할당받아 메시지를 처리합니다.
오프셋 관리
컨슈머들은 처리한 메시지의 오프셋을 저장하여, 장애 발생 시 중단된 위치부터 처리를 재개할 수 있습니다.
라운드 로빈 파티션 할당
컨슈머 수가 파티션 수보다 적을 때, 각 컨슈머는 여러 개의 파티션을 할당받을 수 있습니다.
재조정
컨슈머 그룹 내의 컨슈머 수에 변화가 있을 때, Kafka는 파티션 할당을 자동
으로 조정합니다.
동일한 메시지를 한 번만 처리
컨슈머 그룹을 통해 메시지가 중복 처리되는 것을 방지
합니다.
Kafka에서 컨슈머 그룹 ID를 적절히 활용하면, 메시지 처리의 효율성과 정확성을 높일 수 있습니다.
특히 대규모 분산 환경에서는 이러한 최적화가 더욱 중요해진다고 생각합니다.