OpenSource (13) 썸네일형 리스트형 Spring AMQP를 사용하여 RabbitMQ Producer, Consumer 예제 코드 작성하기 spring-amqp dependency 추가 org.springframework.boot spring-boot-starter-amqp org.springframework.amqp spring-rabbit-test test application.yml 설정spring: rabbitmq: host: localhost #hostIp port: 5672 #default 5672 username: "admin" #username password: "admin" #password Queue 생성 및 설정spring boot 환경에서는 Configuration 설정을 통해 쉽게 Queue, Binding, Exchange를 설정할 수 있습니다.DirectExchan.. Docker로 RabbitMQ 클러스터 구성하기 RabbitMQ는 인프라 유지보수, 업그레이드 및 장애로부터 데이터베이스와 데이터를 보호하기 위해 복제, 장애 복구 및 고가용성 기능을 제공합니다.배치에는 세 개의 노드가 있는 클러스터가 포함되어 있으며 사용자, 가상 호스트, 큐, 교환, 바인딩, 런타임 매개변수 및 기타 분산 상태가 세 개의 모든 노드에서 공유됩니다.노드가 실패하면 노드가 삭제되거나 다시 시작된 후 해당 노드 또는 새 노드가 클러스터에 재동기화 됩니다 .docker pull rabbitmq:managementdocker network 생성docker network create prod3대의 RabbitMQ 컨테이너 실행docker run -d --name rabbitmq_node1 -h rabbitmq_node1 -it --networ.. Docker에 RabbitMQ 설치 도커로 RabbitMQ 설치아래의 명령으로 docker container를 띄웁니다docker run -d --name rabbitmq -p 5672:5672 -p 8080:15672 --restart=unless-stopped rabbitmq:management docker 옵션 정보-d : 백그라운드로 실행--name rabbitmq : 해당 컨테이너 이름을 rabbitmq로 실행-p 5672:5672 -p 8080:15672 : Host와 컨테이너간 포트 포워딩 (5672: rabbitmq 기본 통신 포트, 15672: rabbitmq 관리자 페이지 통신 포트) 클러스터 구성이 필요할 경우 25672 추가(추후 추가 예정)-restart=unless-stopped : 해당.. [RabbitMQ] RabbitMQ 설치 및 Cluster 구성 방법 RabbitMQ 설치 및 Cluster 구성 방법에 대한 내용입니다.1. EPEL 저장소 설치$ yum install -y epel-release2. erlang 설치 및 확인erlang 설치클러스터 구성된 노드끼리 통신을 위해 Erlang Cookie가 필요하므로 erlang을 설치합니다.$ yum install -y erlangerlang 설치 확인erl 명령어 입력 시 아래와 같이 나오면 잘 설치 된 겁니다.$ erlErlang/OTP 23 [erts-11.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]Eshell V11.2 (abort with ^G)1>3. RabbitMQ 설치 및 실행$ yum install -y rab.. [RabbitMQ] RabbitMQ의 주요 개념 Core Concept RabbitMQ에서 중요한 개념은 Producer, Consumer, Queue, Exchange, Binding이 있습니다. Producer 메세지를 생성하고 발송하는 주체입니다. 이 메시지는 Queue에 저장되는데 주의할 점은 Producer는 Queue에 직접 접근하지 않고, 항상 Exchange를 통해 접근하게 됩니다. message를 consumer에게 위임하기 위해 message를 exchange에 publish 합니다. message 전송하는 일 외에는 아무 일도 하지 않습니다. Consumer 메세지를 수신하는 주체입니다. Consumer는 Queue에 직접 접근하여 메세지를 가져옵니다. Message 처리해야 할 내용이 담겨져 있습니다. Queue Queue는 Pr.. [Kafka] Kafka Consumer 컨슈머는 보통 카프카 컨슈머 API와 그것으로 구성된 애플리케이션을 말합니다. 일반적으로 컨슈머가 토픽을 구독(Subscribe) 혹은 읽는다(Read)고 하는데, 이는 컨슈머가 토픽 파티션에 저장된 메시지들을 가져오는 것을 말합니다. 컨슈머의 3가지 특징은 다음과 같습니다. Polling 구조 단일 토픽의 멀티 커슈밍 컨슈머 그룹 Polling 구조 일반적으로 다른 메시징 큐는 메시지 큐에서 메시지를 push하는데, 카프카는 컨슈머가 브로커로부터 메시지를 pull 해옵니다.push 방식의 가장 큰 단점은 메시지 큐가 컨슈머 측의 성능도 염두해야 합니다. 즉, 메시지 큐가 컨슈머로 메시지를 push 할 때, '이 정도는 할 수 있겠지'라고 컨슈머의 환경을 고려해야 합니다. 하지만 컨슈머가 브로커로부터 메.. [Kafka] Kafka Producer 프로듀서는 보통 카프카 프로듀서 API와 그것으로 구성된 애플리케이션을 말합니다. 프로듀서는 브로커에 특정 토픽(혹은 파티션 영역까지)을 지정하여 메시지를 전달하는 역할을 담당합니다. 프로듀서를 통해 전달되는 메시지의 구조는 다음과 같습니다. 프로듀서 구조와 메시지 전달 과정 프로듀서는 아래의 4가지 과정을 통해 브로커에게 메시지를 전달합니다. 직렬화 (Serializer) 파티셔닝 (Partitioner) 메시지 배치 (Record Accumulator) 압축 (Compression) 전달 (Sender) 각 과정을 천천히 살펴보겠습니다. 프로듀서는 먼저, 전달 요청 받은 메시지를 직렬화합니다. 직렬화는 Serializer가 지정된 설정을 통해 처리하며, 메시지의 키와 같은 바이트 뭉치 형태로 변환됩니.. [Kafka] Message, Topic, Partition Kafka Message 카프카 메시지는 Key와 Value로 구성됩니다. key는 해당 메시지가 카프카 브로커 내부에 저장될 때 저장되는 위치에 관련된 요소입니다. 프로듀서가 메시지를 브로커로 전달할 때, 프로듀서 내부의 파티셔너(Partitioner)가 저장 위치를 결정하는데, 이때 key의 값을 이용하여 연산하고 그 결과에 따라 저장되는 위치를 결정합니다. value는 메시지가 전달하고자 하는 내용입니다. 단순히 문자열이 될 수도 있고, JSON이나 특정 객체가 될 수도 있습니다. +) 다양한 타입의 값을 보낼 수 있는 것은 브로커를 통해 메시지가 발행되거나 소비될 때, 메시지 전체가 직렬화/역직렬화 되기 때문입니다. Topic Topic은 메시지를 구분하는 논리적인 단위로, 동일한 메시지들은 논리.. 이전 1 2 다음 목록 더보기