본문 바로가기

Kafka4

분산 시스템에서 데이터를 전달하는 효율적인 방법 - 2 2024.09.19 - [Infra/DevOps] - 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1이번 포스팅에서는 NHN 유튜브의 분산 시스템에서 데이터를 전달하는 효율적인 방법 강의를 보고 정리한 내용이다.  포스팅에서 다룰 내용데이터 전달 보장 방법론RDB를 사용하는 애플리케이션hdbstn3055.tistory.com 이전 글과 이어지는 내용이다. 우리는 앞서 RDB를 사용하는 애플리케이션에서 전달 방법을 알아보았다. 이번 포스팅에서는 RabbitMQ를 사용한 전달 방법과 Kafka를 사용한 전달 방법에 관해 알아본다.  RabbitMQ를 사용한 전달 방법RabbitMQAMQP(Advanced Message Queuing Protoco.. 2024. 9. 20.
[커뮤니티 서비스] 커뮤니티 서비스와 다른 서비스의 통신 커뮤니티 서비스커뮤니티 서비스는 FitTrip 프로젝트의 유저가 상시 접속한다고 해도 과언이 아니다. 유저가 채팅을 치기 위해선 서버, DM에 접속해야 하며,유저가 음성/화상 통화를 하기 위해서도 서버, DM에 접속해야 한다. 처음 FitTrip 서비스를 방문해도 유저에게 서버, DM 목록을 전송해주며,유저는 다양한 채널을 생성하고 포럼 채널에 포럼을 통한 챌린지를 진행한다.  즉, 커뮤니티 서비스에서 일어난 변경은 항상 모든 유저에게 실시간으로 업데이트 되어야 한다.그렇기에 관련 작업을 위해 커뮤니티 서비스는 `Kafka`로 처리한다.  커뮤니티 서비스의 카프카 이벤트 처리앞서, 설명한 것처럼 커뮤니티 서비스는 카프카로 다양한 이벤트를 전송한다. 서버UPDATE, DELETEDMUPDATE채널CREAT.. 2024. 8. 7.
[커뮤니티 서비스] 포럼 조회시 페이징 반환 Slice로 처리 커뮤니티 서비스의 포럼 채널FitTrip의 커뮤니티 서비스에는 서버가 존재한다.서버 안에는 또 여러 개의 채널들이 존재한다. 채널채팅 채널음성 채널포럼 채널 여기서, 포럼 채널은 사용자의 일상, 챌린지 등 다양한 사진과 함께 간단 포스팅이 가능한 채널이다.(서버에 접속한 사람들끼리의 채팅도 가능하다.) 인스타그램, 페이스북 포스팅이라고 생각하면 간단할 것이다.  포럼 채널 페이징포럼 채널에는 카테고리마다 수많은 포럼이 존재할 수 있기 때문에 굉장히 많은 포럼들이 존재한다.따라서, 커뮤니티 서비스는 해당 포럼 채널을 적절히 페이징 처리를 해서 보내줘야 한다. 페이징을 해야하는 이유수많은 데이터가 DB에 있을 때 페이징 처리를 하지 않으면 데이터들을 DB로 가져오는데 너무 많은 비용과 시간 소모많은 데이터를.. 2024. 7. 18.
Spring With Kafka 이번 캡스톤 디자인 프로젝트를 진행하며 MSA를 사용하게 되었다. 이에 따라 서비스들을 잘게 나누었고 서비스들간의 비동기 이벤트를 처리하기 위해 Kafka를 사용하게 되었다. 본 포스팅에는 주키퍼/카프카는 무엇인지 어떻게 사용하는지 알아보도록 하자. 자세한 주키퍼/카프카의 내용은 다른 포스팅으로 다뤄 보도록 하겠다. 우선, Kafka를 알아보기 이전 Zookeeper에 관해 알아보도록 하자. (카프카의 여러 버전 중 주키퍼 없이 독립적으로 작동하는 카프카도 존재하지만,통상적으로 주키퍼와 함께 클러스터를 구축하여 동작하기에 주키퍼가 뭔지 알아보도록 한다.) Apache Zookeeper주키퍼는 이름처럼 동물원 사육사이다. 왜 이름이 이럴까? 많은 오픈 소스 프로젝트를 지원하는 Apache 재단의 프로젝트 .. 2024. 5. 5.