본문 바로가기

Kafka3

redis로 채팅 메시지 다룰 때 이스케이프 조심해야 되는 이유 최근 앱 출시를 위해서 밤낮으로 진행하고 있는 예비군 택시 파티 프로젝트의 채팅 부분에서 문제가 생겼다. "안녕하세요" 이런 식으로 줄바꿈 없이 메시지를 보내면 문제없이 채팅이 전송되고 조회되지만 "안\n녕\n하\n세\n요"와 같이 중간에 줄바꿈을 넣어서 채팅을 보내게 된다면 저장은 되지만 채팅을 조회할 때 Json Parsing 에러가 발생했다. 왜 이런 문제가 생겼을까?현재 예비군 택시 파티 프로젝트의 채팅은 대략 아래 그림과 같은 순서로 이루어지고 있다. 1. 먼저 stomp를 통해서 클라이언트가 전송한 메시지 객체가 server로 들어온다. 2. server는 메시지 객체를 kafka producer를 통해서 consumer로 전송한다. 3. consumer는 이벤트를 수신하면 redis에 메시지.. 2024. 9. 8.
Spring-Boot + redis + kafka로 대용량 트래픽을 관리해보자 이 내용은 이전에 포스팅하였던 LINE의 HotChat에 대응하는 시스템 아키텍처를 직접 구현해본 경험을 글로 작성하였습니다. 들어가면서.. 이 프로젝트는 Kafka와 Redis의 활용법을 익히고 갑작스럽게 트래픽이 증가하는 경우 대비할 수 있는 로직에 대해서 공부하기 위해서 진행하였습니다. 프로젝트의 가정 Kafka 이벤트 기반 채팅 시스템에서 임계점을 넘는 대규모 FETCH 트래픽이 발생했을 때 redis와 kafka, 스로틀링을 활용하여 트래픽을 잡는다. 시스템 아키텍처 크게 클라이언트(react), ChatServer, PublishServer로 나뉘며 각각 클라이언트는 react를 활용해 채팅방을 구현하였고 ChatServer는 클라이언트에서 메세지나 공감 이벤트가 발생하였을 때 카프카 클러스터.. 2023. 10. 5.
LINE 오픈챗 서버가 100배 급증하는 트래픽을 다루는 방법 feat.Kafka 최근 새롭게 Join한 백엔드 스터디에서 기존에 사용해보지 못했던 기술들을 활용하는 방법들을 공부하고 기록으로 남기기 위해서 Kafka에 대해서 공부를 했고 모두 어느 정도 알고 있는 원리를 정리하기보다는 실제 기업에서는 어떤 방식으로 Kafka가 운영되고 어떤 목적으로 사용되는지 정리를 하기 위해서 Line의 오픈챗 서버에서 Kafka가 어떻게 활용이 되었고 어떤 방식으로 100배 급증하는 트래픽을 해결하였는지 정리를 하기 위해서 글을 작성하게 되었습니다. 이번 글에서는 Line의 개발자분들이 오픈챗의 핫챗을 통해 100배 급증하는 트래픽을 어떻게 Kafka를 활용하여 해결하게 되었는지 설명하겠습니다. 핫챗이란? 만약 한 오픈챗에 참여한 5천 명의 사용자가 모두 동시에 활발하게 메시지를 주고받는다면 어.. 2023. 9. 21.