да, RabitMQ поддерживает несколько издателей и потребителей.
Multiple Издательство
Для публикации messsge в rabbitmqyou необходимо объявить фабрику и сделать подключение к серверу RabbitMQ. затем арам в chennel к RabbitMQ
ConnectionFactory FACTORY = new ConnectionFactory
FACTORY.setUsername ("гость")
FACTORY.setPassword ("гость")
FACTORY.setVirtualHost ("\")
FACTORY.setPort (5572)
FACTORY.setHost ("локальный")
соединения Соединения = FACTORY.newConnection канала Channel = connection.createChannel
основной ключ маршрутизировать сообщением является маршрутизация ключа
channel.basicPublish(EXCHANGE_NAME, "Queue1", MessageProperties.PERSISTENT_TEXT_PLAIN, "msg1".getBytes)
channel.basicPublish(EXCHANGE_NAME, "Queue2", MessageProperties.PERSISTENT_TEXT_PLAIN, "msg2".getBytes)
этих двух сообщений будет опубликован в отдельную очередь, как за ключ маршрутизации, как упоминание queue1 и queue2
2.Multiple Потребитель
для мульти мы объявляем очередь и привязываемся к определенному ключу маршрутизации , сообщение этому ключу маршрутизации будет публиковаться в уважаемой очереди.
channel.exchangeDeclare(EXCHANGE_NAME, "direct", durable)
channel.queueDeclare("q1", durable, false, false, null)
channel queueBind ("q1", EXCHANGE_NAME,"queue1")// routing key = "queue1"
val q1Consumer = new QueueingConsumer(channel)
channel basicConsume ("q1", false, q1Consumer)
как это и может получать сообщения из первой очереди и то же самое для второй очереди, но указать ключ маршрутизации как «queue2»
channel.exchangeDeclare(EXCHANGE_NAME, "direct", durable)
channel.queueDeclare("q2", durable, false, false, null)
channel queueBind ("q2", EXCHANGE_NAME,"queue2") // routing key = "queue2"
val q2Consumer = new QueueingConsumer(channel)
channel basicConsume ("q2", false, q2Consumer)