Лучший подход для интеграции Django с внешним API с помощью RabbitMQ (Pub/Sub)?
Я разрабатываю разрозненную систему, состоящую из двух API, которые взаимодействуют через RabbitMQ. Один API полностью разработан мной с использованием Django, а другой является внешним API, управляемым другим разработчиком (я могу запрашивать изменения, но не имею доступа к его коду).
Интеграция работает следующим образом:
- Мой Django API публикует сообщение в Queue A в RabbitMQ.
- Внешний API потребляет сообщения из Queue A, обрабатывает их и публикует ответ в Queue B.
- Мой Django API затем потребляет сообщения из Queue B.
В этой установке:
- Мой Django API действует как издатель для очереди A и потребитель для очереди B.
- Внешний API действует как потребитель для очереди A и издатель для очереди B.
Я хочу проверить, является ли такой подход правильным и есть ли альтернативные способы эффективного достижения этой коммуникации.
Далее, если этот подход верен, как мне реализовать потребителя для очереди B в Django?
- Где разместить потребитель RabbitMQ, чтобы он хорошо интегрировался в экосистему Django?
- Как я могу гарантировать, что он будет следовать стандартному потоку выполнения Django?
- Лучше всего запускать его как отдельный процесс, команду управления Django или использовать другой подход?
Я хочу не нарушать естественный рабочий процесс Django и при этом обеспечить надежную работу моего потребителя.
Любые соображения или лучшие практики для такого рода архитектуры будут высоко оценены.