RabbitMQ在一台服务器上有多个Symfony2应用程序



我用RabbitMqBundle开发了一个Symfony2的Web应用程序,它工作正常。

现在,我正在尝试为其他开发人员设置同一应用程序的更多实例。所以,现在我有 9 个实例(dev01 - dev09)。我已经为每个开发实例创建了数据库并设置了文件,它们工作正常,除了RabbitMq.例如,dev01 创建的消息队列,但它是由 dev02 的使用者处理的(它应该由 dev01 处理)等等。

我想我需要为我们的多个应用程序配置连接/生产者/消费者,但我不知道从哪里开始。

[美国东部时间1月23日凌晨4点更新]为了尝试,我将queue_options中的名称更改为"api.import.dev01"。但是,即使我指定回调"wl.api.import.consumer",它也会出现以下错误:

[SymfonyComponentDependencyInjectionExceptionServiceNotFoundException] You have requested a non-existent service "old_sound_rabbit_mq.api.import.dev01_consumer".

谁能给我一些方向(例如示例或文档的链接)?

old_sound_rabbit_mq:
 connections:
  default:
   host:"%mq.default.host%"
   port:"%mq.default.port%"
   user:"%mq.default.user%"
   password:"%mq.default.pass%"
   vhost:"%mq.default.vhost%"
   lazy:"%mq.default.lazy%"
 producers:
  event:
   connection:  default
   exchange_options: { name: 'event', type: topic }
   auto_setup_fabric: false
 consumers:
  api.import:
   connection: default
   exchange_options:
    name: 'event'
    type: topic
   queue_options:
    name: 'api.import'
    routing_keys:
     - 'api.import.#'
   callback: wl.api.import.consumer
   qos_options: { prefetch_size: 0, prefetch_count: 100, global: false }
   auto_setup_fabric: false

与使用数据库的单独实例相同,您可以创建单独的队列。

您可以尝试为每个应用程序配置一个 rabbitmq vhost 吗?

https://www.rabbitmq.com/vhosts.html

最新更新