Sobes.tech
Middle

Kendi veritabanına sahip ana servis, 1) periyodik olarak yükü kaldıramayan dahili servisle, 2) sadece REST üzerinden bir gün sonra yanıt veren ortak servisle iletişim kurmalı. Hangi durumda senkron, hangi durumda asenkron iletişim kullanılmalı ve hangi araçlar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Для взаимодействия с двумя сервисами стоит использовать разные подходы:

  1. Внутренний сервис, который периодически не справляется с нагрузкой:

    • Здесь лучше использовать асинхронное взаимодействие через очередь сообщений (например, RabbitMQ, Kafka).
    • Это позволит разгрузить сервис, обрабатывать запросы по мере возможности, избежать потери данных.
  2. Сервис партнера, который отвечает через сутки по REST:

    • Здесь также подходит асинхронное взаимодействие, так как ожидание ответа в течение суток в синхронном режиме нецелесообразно.
    • Можно реализовать механизм отправки запроса и получения ответа через callback, webhook или периодический опрос статуса.

Синхронное взаимодействие стоит применять только там, где ответ нужен немедленно и сервис стабилен.

Инструменты:

  • Для асинхронного взаимодействия — брокеры сообщений (RabbitMQ, Kafka), системы очередей.
  • Для REST с долгим ответом — webhook, polling, или хранение состояния запроса в базе с последующей обработкой.

Таким образом, оба взаимодействия лучше делать асинхронными, но с разными механизмами и ожиданиями.