2010-02-11 4 views
0

바운드 큐를 삭제하지 않고 RabbitMQ에서 바인딩을 제거하려고합니다. 나는 0.8 AMQP spec으로 txAMQP를 사용하고있다. RabbitMQ가 지원하는 유일한 버전 인 것으로 보이지만, unbind 메소드가 없습니다.RabbitMQ에서 txAMQP 바인딩을 해제 할 수 있습니까?

이상하게도, 소스 코드를 살펴보면 RabbitMQ가 바인딩 해제를 지원한다는 것을 알 수있어서 다소 혼란 스럽습니다.

클라이언트와 서버의 조합으로 바인딩 해제 할 수 있습니까? 그렇다면 어떻게?

답변

2

RabbitMQ는 이제 몇 가지 버전에서 0-9 사양에서 정의가 해제 된 Queue.Unbind 확장을 지원하지만 모든 AMQP 클라이언트 라이브러리가 동일한 방식으로 확장되지는 않습니다.

이 작업을 txAMQP와 함께 사용하려면 0-9 사양의 Queue.Unbind 및 Queue.UnbindOk 메서드에 대한 XML 정의를 가져 와서 0-8 사양 파일 txAMQP use에 붙여 넣어야합니다. 응용 프로그램을 다시 시작하십시오. txAMQP의 작동 방식을 제대로 이해했다면 Queue.Unbind 메서드를 사용할 수 있습니다. 여기

는 BSD 라이센스 0-9-1 사양에서, 관련 XML 스탠자 있습니다

<method name="unbind" synchronous="1" index="50"> 
    <chassis name="server" implement="MUST"/> 
    <response name="unbind-ok"/> 
    <field name="reserved-1" type="short" reserved="1"/> 
    <field name="queue" domain="queue-name"/> 
    <field name="exchange" domain="exchange-name"/> 
    <field name="routing-key" domain="shortstr"/> 
    <field name="arguments" domain="table"/> 
</method> 
<method name="unbind-ok" synchronous="1" index="51"> 
    <chassis name="client" implement="MUST"/> 
</method>