Java AMQP(Qpid)一对多队列

Java AMQP(Qpid)一对多队列,java,message-queue,amqp,qpid,Java,Message Queue,Amqp,Qpid,我有一个生产者、一个队列和N个消费者。生产者创造了由消费者完成的“工作”。我想使用拉式模型,消费者在完成前一个作业时从队列中拉取作业,而不是使用循环推式模型,在循环推式模型中,作业被等于消费者的数量分配 我的用户使用相同的代码,但当我运行它时,第一个用户连接并接收所有作业。即使在调试中查看它,第一个etc也会获取所有信息,但第二个etc不会获取任何消息(即使它在第一个etc执行receive之前执行receive,后者会返回一些作业) 连接URL:“amqp://guest:guest@prod

我有一个生产者、一个队列和N个消费者。生产者创造了由消费者完成的“工作”。我想使用拉式模型,消费者在完成前一个作业时从队列中拉取作业,而不是使用循环推式模型,在循环推式模型中,作业被等于消费者的数量分配

我的用户使用相同的代码,但当我运行它时,第一个用户连接并接收所有作业。即使在调试中查看它,第一个etc也会获取所有信息,但第二个etc不会获取任何消息(即使它在第一个etc执行receive之前执行receive,后者会返回一些作业)

连接URL:“amqp://guest:guest@prodcontest/?brokerlist=tcp://127.0.0.1:5767""

适用于每个消费者的代码:

  • 创建AMQConnection
  • 使用自动确认创建队列会话
  • 连接启动
  • 创建队列
    “ADDR:+queueName+”;{create:always,link:{x-subscribes:{exclusive:false}}}}
  • 创造消费者

  • 从理论上讲,使用AMQP队列可以实现吗?如果是,如何更改?

    似乎我必须更改连接URL中的
    maxprefetch
    参数。默认值5000对于我的用例来说太大了,将其更改为1会使系统正常工作