Лучший подход для интеграции Django с внешним API с помощью RabbitMQ (Pub/Sub)?

Я разрабатываю разрозненную систему, состоящую из двух API, которые взаимодействуют через RabbitMQ. Один API полностью разработан мной с использованием Django, а другой является внешним API, управляемым другим разработчиком (я могу запрашивать изменения, но не имею доступа к его коду).

Интеграция работает следующим образом:

  1. Мой Django API публикует сообщение в Queue A в RabbitMQ.
  2. Внешний API потребляет сообщения из Queue A, обрабатывает их и публикует ответ в Queue B.
  3. Мой Django API затем потребляет сообщения из Queue B.

В этой установке:

  • Мой Django API действует как издатель для очереди A и потребитель для очереди B.
  • Внешний API действует как потребитель для очереди A и издатель для очереди B.

Я хочу проверить, является ли такой подход правильным и есть ли альтернативные способы эффективного достижения этой коммуникации.

Далее, если этот подход верен, как мне реализовать потребителя для очереди B в Django?

  • Где разместить потребитель RabbitMQ, чтобы он хорошо интегрировался в экосистему Django?
  • Как я могу гарантировать, что он будет следовать стандартному потоку выполнения Django?
  • Лучше всего запускать его как отдельный процесс, команду управления Django или использовать другой подход?

Я хочу не нарушать естественный рабочий процесс Django и при этом обеспечить надежную работу моего потребителя.

Любые соображения или лучшие практики для такого рода архитектуры будут высоко оценены.

Вернуться на верх