2016-03-28 26 views
1

Am am yanlış ise question..Please doğru vardır:Bahar RabbitMQ anonim kuyruk

ben yani uygulamanın üç örneği var.

Instance1 Instance2 Instance3

Not: Bu örnekler number.All bu örnekleri örnek sayısı sabit değildir, aynı exchange..As dinlemek sabit olması gerekmez, benim gereksinimi aynı mesajdır shuld olduğunu Tüm üç/(sayı olabilir) tarafından elde edilen değişken olabilir .. bu bahar-amqp

kullanarak elde etmek için Kuyruk ismini bildirmek ve bu iletiler için iletileri bağlamak için bağlanmanız gerekir ... ama tavşanmq iletileri istiyorum (borsalardan mesajlar) tüm sıralara .. Nasıl başarabiliriz .. Anonim sıralar gibi bir şey duydum ...

Nasıl kuyruk kimliğini beyan etmek SPEL kullanmayan xml bildiriminde yoluyla ilkbaharda programlama bunu başarmak ve

1. Adım: Bağlantı fabrika oluşturma Adım 2: Oluşturma değişimi 3. Adım: bir kuyruk oluşturma 4. Adım: Oluşturma AMQP admin ve sonra sıra Adım 5:

'u değiştirmek için bir sıraya bağlanın. Ayrıca, örneğin durdurulduğunda, sırasın autodeleted olması gerekir. Bu, post-konstrüksiyonda verilebilir mi? aşağıdaki gibi

, bu kodu olarak açmak benzerlik göstermektedir:

CachingConnectionFactory F = yeni CachingConnectionFactory ("192.168.1.10", 5672);

RabbitAdmin admin = new RabbitAdmin(cf); 

FanoutExchange testExchange = new FanoutExchange("testExchange", true, false); 
admin.declareExchange(testExchange); 

Queue testQueue = new Queue("testQueue", true, false, true); 
admin.declareQueue(testQueue); 

admin.declareBinding(BindingBuilder.bind(testQueue).to(testExchange)); 

SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); 
container.setConnectionFactory(cf); 
container.setRabbitAdmin(admin); 

container.setQueues(testQueue); 
container.setMessageListener(new MessageListenerAdapter() { 
    public void handleMessage(String text) { 
     System.out.println("Received : " + text); 
    } 
}); 
container.afterPropertiesSet(); 

container.start(); 

cevap

1

Sen autodeleted kuyruklar doğru yol ancak örneğin başına benzersiz olabilir, ancak onlar anonymous olmayabilir.

Buradaki temel özellik, Fanout Exchange. Tam olarak bu Exchange aynı mesajı tüm abone (bağlı) sıralarına gönderebilir.

Daha fazla bilgiyi RabbitMQ Tutorial'da bulabilirsiniz.

+0

biz zaten fanout exchange'i kullanıyoruz ... ama sorun biz edscontainer.setQueueNames (queue_name) ayarlandığımız bahar amqp kullanıyoruz; otomatik silme kuyruklarını kullanarak bunu nasıl başarabilirsiniz –

+0

Temel olarak bu scnearioyu nasıl ele alabiliriz ConnectionFactory connectionFactory = new CachingConnectionFactory(); AmqpAdmin admin = new RabbitAdmin (bağlantıFactory); admin.declareQueue (yeni Sıra ("myqueue")); –

+0

??? Genel olarak bunu elle yapmanız gerekmez. “RabbitAdmin”, tüm “varlıklar” ile ilgilenir ve bunlar arasında otomatik olarak bağlanır. Tabii ki fasulye olarak ilan edilirlerse. 'Sıra' ctors bakın. 'autoDelete' bunlardan birinde. –