oui, RabitMQ soutient l'éditeur multiple et consommateurs.
Editeur Multiple
Pour la publication d'un messsge à rabbitmqyou besoin de déclarer une usine et faire une connexion au serveur rabbitmq. DeCare alors un Chennel à rabbitmq
ConnectionFactory FACTORY = new ConnectionFactory
FACTORY.setUsername ("guest")
FACTORY.setPassword ("guest")
FACTORY.setVirtualHost ("\")
FACTORY.setPort (5572)
FACTORY.setHost ("localhost")
Connexion Connexion = FACTORY.newConnection canal canal = connection.createChannel
la clé de base pour acheminer un message est une clé de routage
channel.basicPublish(EXCHANGE_NAME, "Queue1", MessageProperties.PERSISTENT_TEXT_PLAIN, "msg1".getBytes)
channel.basicPublish(EXCHANGE_NAME, "Queue2", MessageProperties.PERSISTENT_TEXT_PLAIN, "msg2".getBytes)
ces deux messages seront publiés dans une file d'attente séparée par la clé de routage mention queue1 et queue2
2.Multiple Consumer
multi En cas de besoin, nous déclarons une file d'attente et nous lions à une clé de routage particulière le message à cette clé de routage sera publié dans la file d'attente respectée.
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)
comme ceci u peut consommer des messages de première file d'attente et en va de même pour la deuxième file d'attente mais spécifier la clé de routage en tant que « 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)