반응형 rabbitmq6 Dead Letter Exchange (메세지 만료) 참고 URLhttps://www.rabbitmq.com/ttl.htmlhttps://www.rabbitmq.com/dlx.html메세지가 오랫동안 Queue에 남아 있을 때 message-ttl 설정을 하여 가비지 메세지를 삭제 또는 다른 Queue 에 보낼 수 있음Dead LetterQueue 선언 할 때 전체 메세지 만료 시간을 세팅 할 수 있고각 메세지 마다 expiration 옵션을 줘서 메세지를 만료 시킬 수 있다.KEYVALUE설명x-dead-letter-exchangeDLX_NaverRouter죽은 메세지 다른 큐로 보내버릴 exchange 이름x-message-ttl5000 (5초)만료 시간x-dead-letter-routing-keydlx_naverkey234라우트 키 까지 설정해줘야 다.. 2025. 9. 10. 컨슈머 병렬 처리, 메세지 손실 방지 1. 컨슈머 병렬 처리동일 큐를 선언한 컨슈머 여러 개 실행할 경우 병렬 처리됨네이버 체크아웃 컨슈머 NaverQueue 10개 실행되고 있는 현재 상황이랑 같음NaverQueue 에 메시지가 100개 쌓여 있다면컨슈머 10개가 각각 알아서 처리함이러한 방법은 작업 시간이 아주 오래 걸리는 작업 일 때 평균적으로 모든 컨슈머는 동일한 수의 메시지를 받습니다.이러한 메시지 배포 방식을 라운드 로빈이라고 합니다.# 쉘 3 (프로듀서)php send.php 첫 번째 메시지.php send.php 두 번째 메시지..php send.php 세 번째 메시지...php send.php 네 번째 메시지....php send.php 다섯 번째 메시지.....# 쉘 1 (컨슈머)PHP worker.php# => [*] 메.. 2025. 9. 10. Queue and Exchange 1. Queue 생성queue_declare()큐가 존재하지 않으면 큐를 생성한다// hello 라는 이름의 큐 선언/*name: 큐 이름 (hello)passive: falsedurable: true // the queue will survive server restartsexclusive: false // the queue can be accessed in other channelsauto_delete: false //the queue won't be deleted once the channel is closed.*/$channel->queue_declare('hello', false, false, false, false); 인수 설명 비고name큐 이름amq로 시작하는 큐 이름은 생성 할 수 없다p.. 2025. 9. 10. RabbitMQ 개념 RabbitMQ 는 AMQP를 구현한 미들웨어 다양한 언어를 지원하여 인기가 많다RabbitMQ 예제코드를 작성하고 테스트하면서 제 나름대로 이해하기위해 정리하였습니다. 문서에 대한 설명이 빈약할 수 있으니 양해 바랍니다.AMQP메세지 지향 미들 웨어를 위한 표준 응용 계층 프로토콜구조크게 보면 3개로 구분 지을 수 있다프로듀서 (P)메세지를 큐에 보낸다컨슈머 (C)큐에 있는 메세지를 받는다큐 (hello)메세지를 담는다큐는 이름을 정할 수 있다 (hello)메소드 설명 이름 설명queue_declare()큐가 없으면 생성exchange_declare()exchange 없으면 생성queue_bind()exchange 와 큐를 연결함basic_publish()메세지 큐에 전달basic_consume().. 2025. 9. 10. RabbitMQ 최신 버전 우분투 설치 RabbitMQ 최신 버전 우분투 설치RabbitMQ 설치 # 이렇게 하면 최신 버전으로 설치 안 함. 다시 체크 apt-get install rabbitmq-serverRabbitMQ 최신 버전 설치참고 문헌https://www.rabbitmq.com/install-debian.html#apt-quick-start-packagecloud아래 스크립트 파일 생성 하여 서버에서 실행# 스크립트 파일 작성$ vim rabbitmq_installer.sh# 실행 권한 설정$ chmod +x rabbitmq_installer.sh# 스크립트 파일 실행$ ./rabbitmq_installer.shrabbitmq_installer.sh#!/bin/shsudo apt-get install curl gnupg apt-.. 2025. 9. 10. RabbitMQ 도커 설치 RabbitMQ 도커 설치1. rabbitmq 도커 이미지 다운로드 및 컨테이너 실행docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 --restart=unless-stopped -e RABBITMQ_DEFAULT_USER=username -e RABBITMQ_DEFAULT_PASS=password rabbitmq:management아래 정보로 계정 생성ID = usernamepw = passwordlocalhost:15672 접속 후 ID, PW 입력2. 우분투 서버 컨테이너 실행docker run -dit --name testweb -p 8001:80 ubuntu:20.04php, nginx 설치 예정 혹시 몰라 웹 포트만 연결함우분투 접속하여 p.. 2025. 9. 10. 이전 1 다음 반응형