LINE에서 Kafka를 사용하는 방법 – 3편
KafkaLINEMulti-Tenancyfetch requestpage cacheevent looprequest handler thread
AI 요약
Beta이 글은 LINE에서 Kafka를 대규모로 운영하며 발생했던 Fetch 요청 처리 시 네트워크 스레드 차단 문제를 해결한 방법을 다룹니다. 기존 방식에서는 sendfile 호출 시 디스크 읽기가 필요하면 네트워크 스레드의 이벤트 루프가 차단되어 다른 API 응답까지 영향을 미쳤습니다.
이를 해결하기 위해 디스크 데이터 로딩을 네트워크 스레드에서 요청 핸들러 스레드로 옮겼습니다. 요청 핸들러 스레드는 큐를 폴링하는 모델이라 차단이 발생해도 다른 스레드에 영향을 주지 않으며, 페이지 캐시를 웜업 처리하여 이후 네트워크 스레드에서 차단 없이 데이터를 클라이언트에 전달할 수 있게 되었습니다.
이 개선을 통해 대규모 Kafka 클러스터의 안정성과 성능을 향상시켰습니다.
이 글이 궁금하신가요?
원문 블로그에서 전체 내용을 확인해 보세요
원문 읽으러 가기



