rabbitmq多使用者和多发布者

rabbitmq多使用者和多发布者,rabbitmq,Rabbitmq,希望了解rabbitmq多个发布者和使用者的行为。 rabbitmq服务器是否在同一时间向任何一个使用者发送一条消息,而其他使用者在该时间是理想的 或 使用者从队列中选择任何无人看管的消息,以便一次有多个使用者在使用队列中的消息 基本上,我正在设计一个数据库队列,一次不希望有多个插入。队列中的消息将仅传递给一个使用者。Ie:一旦消息到达队列,它就不会被复制(广播)到多个消费者 如果你想做广播,你必须使用多个队列 有关详细信息,请参见本教程: 是的,RabitMQ支持多个发布者和使用者 多出版商

希望了解rabbitmq多个发布者和使用者的行为。 rabbitmq服务器是否在同一时间向任何一个使用者发送一条消息,而其他使用者在该时间是理想的

使用者从队列中选择任何无人看管的消息,以便一次有多个使用者在使用队列中的消息


基本上,我正在设计一个数据库队列,一次不希望有多个插入。

队列中的消息将仅传递给一个使用者。Ie:一旦消息到达队列,它就不会被复制(广播)到多个消费者

如果你想做广播,你必须使用多个队列

有关详细信息,请参见本教程:

是的,RabitMQ支持多个发布者和使用者

  • 多出版商

    要将消息发布到rabbitmq,需要声明工厂并连接到rabbitmq服务器。 然后把一根纱布脱到拉比特

    ConnectionFactory FACTORY = new ConnectionFactory
    
    FACTORY.setUsername(“来宾”)

    FACTORY.setPassword(“guest”)

    FACTORY.setVirtualHost(“\”)

    工厂设置端口(5572)

    FACTORY.setHost(“localhost”)

    连接=工厂.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.多重消费者

    对于多个使用者,我们声明一个队列并绑定到一个特定的路由密钥 发送到该路由密钥的消息将发布到受尊重的队列

      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)