2012-11-19 2 views
1

RabbitMQ 교환이나 대기열을 구성 할 수 있습니까? 예를 들어 지정된 라우팅 키가있는 메시지가 최대 하나까지 보류 중입니다. 새 메시지가 도착하면 이전 메시지가 삭제되고 새 메시지가 대기열에 추가됩니다.이전 보류중인 메시지를 새 메시지로 바꾸도록 RabbitMQ 구성

이러한 옵션을 사용할 수없는 경우 응용 프로그램 수준에서이를 구현하는 가장 좋은 방법은 무엇입니까? 나는. 응용 프로그램이 메시지를받을 때 보류중인 메시지가 더 있는지 어떻게 확인할 수 있습니까?

+0

난 당신이 마지막 값 캐시 같은 것을 할 수 있습니다 느낌이 : 여기 https://github.com/simonmacmullen/rabbitmq-lvc-plugin

비슷한 질문 : 여기

설치 지침입니다. 그러나 나는 확실하지 않다. 당신이하려는 일의 구체적인 예를 들려 주시겠습니까 – robthewolf

+0

@robthewolf 저는 서버와 클라이언트 사이에서 통신하기 위해 토끼 mq를 사용합니다. 서버는 클라이언트에게 어떤 상태에 있는지 알려주는 메시지를 보냅니다. 클라이언트는 연결이 끊어지면 메시지가 대기열에 들어오고 클라이언트가 다시 연결될 때까지 대기합니다. 클라이언트가 다시 연결되면 서버가 보낸 마지막 메시지에 실제로 관심이 있습니다. 왜냐하면 마지막 메시지는 서버가 클라이언트가이 순간에 있기를 원하기 때문입니다. –

답변

3

마지막 값 캐시를 설치하고 사용하도록 설정해야합니다. 귀하의 거래소는 "x-lvc"유형이며, 직접 교환 유형을 상속합니다.

MQ에 연결할 때마다 대기열을 만들고이 교환에 바인드하십시오. 가장 최근 메시지를 대기열로 전달합니다. 그것은 당신이 가장 uptodate 메시지를 얻을 수 있도록하기 위해 완벽합니다. 이 교환기로 전송 된 다른 모든 메시지는 큐가 연결되어 있지 않으면 삭제됩니다. 한 번 연결되면 업데이트를 계속받을 수 있습니다. RabbitMQ messaging - initializing consumer

관련 문제