Мне нужна ссылка, пожалуйста, на очередь с несколькими ключами маршрутизации.
Видите ли, я создал очередь и связал ее один раз с
channel.queuebind()
, а другой раз с еще раз
channel.queuebind()
пока я не получу эти две привязки в одной и той же очереди.
но после публикации - только первое ограниченное сообщение было успешно передано.
(Я даже заменил ордера и до сих пор - только первое.публикация в порядке)
Что я не сделал - это определил channel.basicConsumer с новым подписчиком.
я должен это сделать?Я хочу, чтобы старый subciver получал больше сообщений.что я сделал не так?
Вот список моих очередей:
Вы можете видеть, что amq.gen-4ae4QUbSNevC / RgM + 8C9CA == привязан к двум ключам.
но сообщение отправляется только на первый ключ
Listing queues ...
amq.gen-4ae4QUbSNevC/RgM+8C9CA== 0
amq.gen-sgZK0bSc0W3QEXda8m1vIQ== 0
PositionsQueue 1
...done.
rabbitmqctl.bat list_bindings
Listing bindings ...
exchange PositionsQueue queue PositionsQueue []
exchange amq.gen-4ae4QUbSNevC/RgM+8C9CA== queue amq.gen-4ae4QUbSNevC/RgM+8C9CA==
exchange amq.gen-sgZK0bSc0W3QEXda8m1vIQ== queue amq.gen- sgZK0bSc0W3QEXda8m1vIQ==
Positions_Exchange exchange amq.gen-4ae4QUbSNevC/RgM+8C9CA== queue Account:Account1
Positions_Exchange exchange amq.gen-4ae4QUbSNevC/RgM+8C9CA== queue Portfolio:Portfolio1
...done.
10x много
Редактировать:
производитель
channel.basicPublish(exchangeName, routingKey, MessageProperties.MINIMAL_BASIC, messageBodyBytes);
потребитель
channel.exchangeDeclare(exchangeName, "direct", durable);
QueueName = channel.queueDeclare(queueName, durable, exclusive, autoDelete, arguments).getQueue();
channel.queueBind(queueName, exchangeName, routingKey);
boolean noAck = false;
queueingConsumer = new QueueingConsumer(channel);
channel.basicConsume(queueName, noAck, queueingConsumer);