Programming/Message Queue 3

RabbitMQ 개념과 구조 정리 (Exchange Type, Dispatch 등)

RabbitMQ 개념과 구조 정리 RabbitMQ란? 'RabbitMQ'는 AMQP를 구현하여 메시지 생성자와 소비자 사이에서 메시지를 중계해 주는 '메시지 브로커'입니다. * AMQP(Advenced Message Queuing Protocol) 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜 RabbitMQ는 메시지 지향 미들웨어(Message Oriented Middleware)에 속하는데요. 메시지 지향 미들웨어는 비동기 메시지를 사용하는 응용프로그램들 사이에서 데이터를 송수신하는 것을 의미하며, 이러한 시스템을 구현한 솔루션을 '메시지 큐(Message Queue)'라고 합니다. 그렇다면 메시지 큐를 사용하는 이유는 무엇일까요? 메시지 큐를 사용함으로써 얻을 수 있는 이점은 아래와 ..

Apache Kafka 주요 개념 정리 (Cluster, Topic, Producer, Consumer)

kafka 주요 개념 정리(cluster, topic, producer, consumer) 1. 카프카(Kafka)란? Kafka는 링크드인(Linked-in)에서 처음 개발되어 2011년 오픈소스화 된 솔루션인데요. 실시간으로 스트리밍 데이터를 게시, 구독, 저장 및 처리할 수 있는 '분산형 데이터 스트리밍 플랫폼'입니다. 기존의 직접적인(end-to-end) 연결 방식의 아키텍처는 데이터 연동의 복잡성이 높고 확장이 어려운 구조인 반면, Kafka를 사용하면 보내는 쪽에서는 Kafka로 메시지를 보내면 되고, 받는 쪽에서도 누가 그 메시지를 생성하고 보냈는지에 관계없이 단순하게 메시지 자체를 가져와서 처리할 수 있게 됩니다. (단순히 text 형식의 메시지뿐만 아니라 json, xml, java의 O..

Kafka TimeoutException 해결 방법 org.apache.kafka.common.errors.TimeoutException: Call(callName=listTopics ...)

kafka 서버 기동을 위해 'zookeeper 서버 기동' -> 'kafka 서버 기동' -> 'kafka 서버에 요청'을 하는 중 'TimeoutException'이 발생하여 해결한 내용입니다. (사용된 kafka 버전은 kafka_2.13-2.7.0 버전입니다.) Zookeeper 및 Kafka 서버 기동 //zookeeper server 기동 $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties //kafka server 기동 $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties 다음 실행 명령을 통해 zookeeper 서버가..