[Amazon MQ] RabbitMQ의 플러그인 사용에 대하여

업무를 위해 RabbitMQ용 Amazon MQ를 세팅했다.

 

원래는 다음의 RabbitMQ의 플러그인을 사용할 예정이었다.

- RabbitMQ Delayed Message Exchange

- RabbitMQ Message Deduplication

 

그런데 막상 개발을 진행하려고 보니... Amazon MQ에서 RabbitMQ의 플러그인을 아주 제한적으로 제공하고 있었다.

(참고: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/rabbitmq-basic-elements-plugins.html)

 

대놓고 FAQ에서 Custom Plugin 사용하고 싶다면 EC2에 설치해서 쓰라고 하더라...

 

ActiveMQ를 사용할까도 고민했지만, Node에서 안정적으로 돌아갈지 짐작이 가지 않는다.

(STOMP나 MQTT로 하면 안정적으로 돌 것 같은데, 당장 업무에 적용할 거라서 어느정도 검증된 방식을 원한다.)

 

다행히(?) RabbitMQ의 Delayed Message는 Dead Letter Exchange에 TTL 조합을 통한 전통적인 방법이 있다.

또한 Deduplication은 애초에 처음 설계를 Redis를 활용한 방법을 생각했었다!

 

아마 구현하다보면 또 벽을 마주하겠지만, 일단 플러그인 안 쓰고 넘어갈 수 있을 것 같다...