RabbitMQ(2)
-
Rust에서 RabbitMQ 사용하기 (WorkQueue)
오늘은 Rust에서 RabbitMQ를 사용하는 방법에 대해 알아봅니다. RabbitMQ는 너무 유명한 MessageQueue이므로 따로 설명하지는 않겠습니다. RabbitMQ에서 가장 기본이 되는 것이 Work Queue입니다. 위와 같이 P는 Producer 즉 메시지를 Queue에 넣는 프로그램이며, C는 Consumer로 메시지를 받아 특정 작업을 하는 프로그램 입니다. 1개의 Queue에 여러 Producer와 여러 Consumer가 붙어서 사용 할 수 있습니다. Producer 먼저 메시지를 Queue에 넣는 방법에 대해 알아보겠습니다. Rust에서는 amiquip라는 Crate를 사용하면 됩니다. $ cargo new producer $ code producer Cargo를 통해 프로젝트를 생..
2023.06.03 -
RabbitMQ Consumer Timeout
회사에서 RabbitMQ를 사용해서 프로젝트를 하고 있는데, 이슈가 있어서 해당 이슈를 분석하고 해결하는 방법을 정리하려고 합니다. 현재 상황 RabbitMQ가 있고 Replicas가 되어 있는 Worker가 메시지를 받게 되면 처리하고 다음 Queue로 메시지를 전송하는 로직입니다. Worker는 메시지를 예약하고 처리 후 Ask로 메시지가 Queue에서 삭제하도록 되어 있습니다. 만약 Exception이 발생해도 Ask를 날리고 Qeueue에서 메시지를 삭제하고 다음 메시지를 받도록 되어 있습니다. 이슈 평소에는 메시지 1개당 처리 시간이 5분에서 10분 정도 였는데, 어느 날 1시간이 넘는 처리 시간을 가진 메시지가 들어와 이슈가 발생하였습니다. Worker 내부적으로 30분이 넘으면 Timeout..
2023.04.17