Spring RabbitMQ 적용하기
·
framework/spring
RabbitMQ는 docker를 이용해 container를 띄우고 테스트했습니다.docker run -d --hostname my-rabbit \ --name rabbitmq \ -p 5672:5672 -p 15672:15672 \ rabbitmq:3-management Spring에서 RabbitMQ를 사용하기 위해서는 먼저 의존성을 추가해주어야 합니다.implementation 'org.springframework.boot:spring-boot-starter-amqp' RabbitMQ에는 exchange와 queue, binding이 있습니다. exchange는 producer로부터 받은 데이터를 큐에 전달하는 역할을 합니다.이제 application.yml과 RabbitMQConfig에서 하나..
RabbitMQ의 Exchange
·
framework/spring
RabbitMQ의 구성요소로는 Producer, Exchange, Queue, Consumer가 있습니다. RabbitMQ를 이용해 데이터를 처리하는 과정은 크게 다음 4단계 과정을 거칩니다.Producer가 RabbitMQ로 메세지를 보낸다Exchange는 Producer로부터 받은 메세지의 routing key를 참고해 해당하는 queue로 메세지를 전달한다queue는 메세지를 일시적으로 저장하는 버퍼 역할을 한다queue를 구독하고 있는 Consumer는 메세지를 가져와 처리한다Exchange 유형여기서 주목할 부분은 Exchange입니다. RabbitMQ에는 4가지 유형의 Exchange가 있고, Exchange를 이용해 유연하게 메세지를 처리할 수 있습니다. Direct Exchange메세지를 ..
AMQP와 RabbitMQ
·
WEB
대용량 데이터 처리에 대해 공부해보고 싶다는 생각이 들어 조금씩 공부를 해나가고 있습니다. 재밌어 보이는 건 많은데 정말 어렵네요..카프카를 공부하며 어느정도 규모가 있지 않으면 활용하기 어려울 것 같다는 생각이 많이 들었습니다. 카프카와는 조금 결이 다르긴 하지만 RabbitMQ도 메세지 큐로 충분히 활용할 수 있을 것이라 생각하고 공부해보고 있는 중입니다! RabbitMQ는 카프카와는 비교도 안되게 가볍긴 하네욤 메세지 큐가 왜 필요할까?서버에 요청이 급격히 많아지거나 부하가 큰 작업이 수행되면, 서버는 점점 더 많은 자원을 사용하게 되고, 요청 처리 속도가 느려지게 됩니다. 또한, 동기 방식으로 요청을 처리할 경우, 서버의 쓰레드는 작업이 완료될 때까지 점유되어 다른 요청을 받을 수 없습니다. 비동..