首页 文章

AMQP(Qpid)一对多排队

提问于
浏览
0

我有一个 生产环境 者,一个队列和N个消费者 . 制片人创造由消费者执行的“工作” . 我想使用拉模型,其中消费者从队列中拉出作业,当它完成前一个作业时,不推动循环模型,其中作业被等于消费者 .

我的消费者使用相同的代码,但是当我运行它时,第一个连接并接收所有作业 . 即使在调试中查看它,第一个获取所有内容,但第二个等不会获得任何消息(即使它在第一个执行接收之前执行接收,它返回一些作业) .

连接URL:“amqp:// guest:guest @ prodconstest /?brokerlist ='tcp://127.0.0.1:5767'”

每个消费者的代码都有:

  • 创建AMQConnection

  • 使用auto ack创建队列会话

  • 连接开始

  • 创建队列 "ADDR:" + queueName + "; {create: always, link:{x-subscribes: {exclusive: false}}}"

  • 创造消费者

从理论上讲,使用AMQP队列是否可行?如果是这样,怎么样?

1 回答

  • 0

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

相关问题