본문 바로가기
728x90
반응형

Message Queue4

[Kafka] 2. 토픽과 파티션 목적 아파치 카프카 애플리케이션 프로그래밍, 카프카 핵심 가이드, 카프카 데이터 플랫폼의 최강자, 그리고 카프카 관련 포스팅을 보고 정리했던 노트를 공유하기 위해 기록한다. 이전 포스팅 참조 2024.03.31 - [Message Queue] - [kafka] 1. kafka의 역사, 장점 [kafka] 1. kafka의 역사, 장점 목적 아파치 카프카 애플리케이션 프로그래밍, 카프카 핵심 가이드, 카프카 데이터 플랫폼의 최강자, 그리고 카프카 관련 포스팅을 보고 정리했던 노트를 공유하기 위해 기록한다. 카프카를 사 daewoony.tistory.com 토픽 카프카에서 데이터를 구분하기 위해 사용하는 논리적인 단위 1개 이상의 파티션을 소유함. 파티션 프로듀서가 보낸 데이터(레코드)들이 저장되는 물리적인.. 2024. 3. 31.
[kafka] 1. kafka의 역사, 장점 목적 아파치 카프카 애플리케이션 프로그래밍, 카프카 핵심 가이드, 카프카 데이터 플랫폼의 최강자, 그리고 카프카 관련 포스팅을 보고 정리했던 노트를 공유하기 위해 기록한다. 카프카를 사용하기 전에 kafka의 역사와 장점 등을 먼저 알면 좋을 것이라 판단하여 가장 먼저 기록한다. 역사 링크드 인에서 단방향 통신을 통해 데이터 생성하는 소스 애플리케이션 → 적재되는 타깃 애플리케이션 으로 연동하는 소스코드를 작성했다. 시간이 지날 수록 아키텍쳐가 거대해지면서 문제가 생기기 시작했다. ex) 타겟 애플리케이션에서 장애가 발생할 경우 해당 데이터를 생성하는 소스 애플리케이션 모두에 장애가 발생한다. (지속적인 데이터 전송 실패 재시도) → 따라서 이러한 파편화된 데이터 흐름을 개선하기 위해 카프카를 개발하였다.. 2024. 3. 31.
[kafka] kafka config 설정 목적 아래 프로젝트에 kafka를 붙이고자 할 때 어떻게 설정할지 공유하고자 한다. 1시간에 한번 실행. 사용자 상호작용 로깅이 아닌 원본 데이터를 가공한 데이터. 실시간으로 실행. 원본 데이터는 mysql에 저장되어있음. 브로커 replication.factor 데이터 유실 방지를 위해 3으로 적용 unclean.leader.election.enable ISR이 아닌 OSR을 가지고 있는 broker를 leader로 선출할 수 있도록 설정하는 옵션. true일 경우, 브로커가 모두 down 되었다가 OSR 상태의 브로커만 up 되었을 때, 데이터는 일부 유실하더라도 서비스할 수 있다. false일 경우, 데이터는 유실하지 않으나, producer, consumer의 요청을 받을 수 없어 서비스 불가하다.. 2024. 3. 31.
[RabbitMQ] RabbitMQ ACK Producer Confirm Producer가 RabbitMQ에게 Message를 전송한 후 RabbitMQ로부터 ACK를 받는 기법 Producer는 설정에 따라 RabbitMQ의 ACK를 기다리지 않을 수도 있음. Producer는 RabbitMQ에게 메세지 전송 RabbitMQ는 수신한 메세지를 Exchange에게 전달 Exchange는 Exchange에 설정된 규칙에 따라 수신한 메세지를 버리거나, Queue 혹은 다른 Exchange에게 전달한다. (1) Queue가 Mirroring되어 있을 경우 메세지는 미러링된 모든 큐에 복사된 이후 producer에게 ACK를 보낸다. (2) 그렇지 않은 경우 메세지가 버려진다면 RabbitMQ는 Producer에게 바로 ACK를 전송한다. 메세지가 큐.. 2022. 5. 17.
728x90
반응형