생산자-소비자 2

[RabbitMQ Java] Work Queue 직접 만들어보기와 메시지의 분배 방식

이번 튜토리얼에서는 시간이 많이 걸리는 작업을 여러 작업자 간에 분배하는 데 사용할 Work Queue(작업 큐)를 만들어 보자. Work Queue(Task Queue)의 핵심 아이디어는 리소스 소모가 많은 작업을 즉시 실행하고 완료될 때까지 기다리는 것을 방지하는 것이다.먼저, 우리는 이어질 작업이 나중에 수행되도록 작업을 예약시킨다.또한 우리는 그 작업을 메시지로 캡슐화하여 큐에 보낼 것이다.백그라운드에서 실행되는 worker 프로세스가 각자 작업을 팝(pop)하고 최종적으로 작업을 실행한다.여러 worker를 실행하면 작업이 작업자 간에 공유되도록 만든다.이 개념은 짧은 HTTP 요청 창 동안 복잡한 작업을 처리하는 것이 불가능한 웹 애플리케이션에서 특히 유용하다.준비 작업이 튜토리얼의 이전 부..

[RabbitMQ Java] 가장 간단한 프로듀서-컨슈머 사용해보기

원래 RabbitMQ 는 할 생각이 없었고, Kafka를 해보려고 했는데Kafka Definitive Guide의 내용이 너무 방대해서 당장 애플리케이션을 만들기 위한 기술에는 부적합하다고 판단했다.따라서, RabbitMQ를 공부해보고자 한다.RabbitMQ는 메시지를 수신하고 전달하는 메시지 브로커이다. 간단하게 우체국에 비유해 보자.우편물을 우체통에 넣으면 우편 배달부가 결국 수신자에게 우편물을 배달할 것이라고 확신할 수 있다.이 비유에서 RabbitMQ는 우체통, 우체국, 그리고 우편 배달부이다. RabbitMQ와 우체국의 주요 차이점은 RabbitMQ는 종이를 다루지 않고 대신 이진 데이터 블롭(메시지)을 수용, 저장, 전달한다는 점이다.RabbitMQ와 메시징 전반에서는 몇 가지 전문 용어를..