Синхронный AMQP из PHP

Может ли PHP обрабатывать AMQP, как службу RPC, и отправлять сообщение и блокировать до получения ответа? Есть ли какие-нибудь хорошие примеры этого, и все ли библиотеки объединяют такие функции в простой в использовании способ?

Я хотел бы иметь гибкость системы посреднических сообщений, но защищать веб-уровень от необходимости знать о его асинхронном характере.

Solutions Collecting From Web of "Синхронный AMQP из PHP"

Конечно, абсолютно. Посмотрите, как поток RPC-типа обходит систему:

  1. Выдается запрос
  2. Запросчик теперь блокирует ожидание ответа на этот запрос

Это полностью реализуется с асинхронной системой сообщений, такой как AMQP. Вам просто нужно выполнить корреляцию RPC:

  1. Отправьте запрос в асинхронном сообщении с уникальным идентификатором внутри него (это не блокирует)
  2. Получайте сообщения из системы обмена сообщениями и блокируйте, пока не получите сообщение с тем же уникальным идентификатором (это означает, что вы только что получили ответ)

RabbitMQ , брокер AMQP, предлагает онлайн-документацию о том, как это сделать.