2017-07-12 2 views
1

Ich erstelle eine Rabbitmq rpc in Ruby 2.3 mit Hase 2.7.0 Ich habe es mit einer Antwort-Warteschlange pro Client gemacht. Es wird jedoch erwartet, dass ich eine recht große Anzahl von Kunden habe und es ist nicht effizient, dies auf diese Weise zu tun. Ich möchte eine direkte Antwort-Funktion von rabbitmq Codedirekte Antwort Pseudo-Warteschlange mit Hase-Edelstein

connection = Bunny.new(rabbitmq_url, :automatically_recover => true) 
connection.start 

channel = connection.create_channel 

reply_queue = channel.queue('amq.rabbitmq.reply-to', no_ack: true) 

in der letzten Zeile verwenden, erhalte ich Fehler

Bunny::AccessRefused: ACCESS_REFUSED - queue name 'amq.rabbitmq.reply-to' contains reserved prefix 'amq.*' 

in der Theorie, die durch http://rubybunny.info/articles/queues.html

erwartet wird, aber auf anderer Seite - Es gibt einen Artikel https://www.rabbitmq.com/direct-reply-to.html, der eine Verwendbarkeit dieser Warteschlange beschreibt.

Ich möchte eine Warteschlange erklären, weil ich sie abonnieren müssen reagieren erhalten

consumer = reply_queue.subscribe do |_, properties, payload| 
    # action 
end 

Ich verstehe nicht, was soll ich mit ihm falsch zu machen (

gibt es ähnliche Themen mit Beispielen solcher Ansatz, sondern auf anderen Sprachen und Tools wie NodeJS erstellt und das scheint gut zu funktionieren. Was soll ich mit Hasen falsch?

aktualisiert

das Problem gefunden - ich habe Odler-Version von Rabbitmq Server verwendet. Derjenige, der die direkte Antwortwarteschlange noch nicht unterstützt

Antwort

Verwandte Themen