728x90 kafka3 RabbitMQ vs Kafka Kafka의 특징 - 분산 처리 시스템(확장성, 고가용성이 높음) - 노드 장애에 대한 대응이 좋음 - 디스크 파일 시스템에 데이터를 저장함으로 영속성을 보장 - 라우팅 기능이 없음 - 메시지 전달 보장을 할 경우 처리속도 저하(리더와 팔로워에게 응답승인이 필요함) RabbitMQ의 특징 - 동기 / 비동기 구현 가능 - 유연한 라우팅이 가능(exchanger가 메시지를 queue에 적절히 분배) - Broker 중심적 Kafka가 필요한 경우 - 높은 처리량 및 고성능/분산/스케일 아웃이 중요한 경우 - 가용성이 높아야 하는 경우 - 메시지 전달 보장이 필수적이지 않은 경우 - 메시지 처리 순서가 보장되어야 하는 경우 - 스트리밍 데이터 처리가 필요한 경우 - 메시지 영속성이 필요한 경우 RabbitM.. 2022. 8. 27. Apache Kafka의 기본 아키텍쳐 Apache Kafka의 기본 아키텍쳐 - Producer : 메시지를 생산, Topic으로 전달 - Broker : kafka application이 설치되어 있는 서버 혹은 노드 - Consumer : Broker의 Topic으로부터 저장된 메시지를 전달받는 역할 - Zookeeper : 분산 애플리케이션 관리를 위한 코디네이션 시스템 기존 메시징 시스템과 차이점 배치 전송 처리 - Producer가 Broker에게 다수의 메시지를 전송하는 경우 batch형태로 Broker에게 한 번에 전달할 수 있음 - 메시지를 작은 단위로 묶어 batch 처리함으로 속도 향상 파일시스템에 메시지 저장 - 컨슈머가 메시지를 소비하더라도 별도의 설정을 하지 않아도 디스크에 메시지를 일정기간 보관하기 때문에 메시지 손.. 2022. 8. 20. Kafka 등장 배경 LinkedIn 데이터 처리 시스템의 한계 - 각 파이프 라인이 파편화되고 시스템 복잡도가 높은 경우 새로운 시스템을 확정하기 어려움 개선 목표 - 프로듀서와 컨슈머의 분리 - 영구적인 메시지 데이터를 여러 컨슈머에게 허용 - 스케일 아웃이 가능한 시스템 기존 메시징 시스템 - Publisher 와 Subscriber로 이루어진 비동기 메시징 전송 방식 - 메시지(데이터 단위)를 Publisher(Producer)에서 저장하면, Subscriber(Consumer)는 데이터를 수신 - 메시지는 수신자가 정해져 있지 않은 상태 - Subscibe된 수신자만이 정해진 메시지를 받음 장점 - 메시징 시스템만 살아 있으면 메시지가 유실되지 않음 - 확정성이 용이 단점 - 실시간 통신이 아니므로 메시지 sub여부.. 2022. 8. 20. 이전 1 다음 728x90