Sobes.tech
Middle

Galvenā pakalpojums ar savu datu bāzi jāsaņem ar: 1) iekšējo pakalpojumu, kas periodiski nespēj tikt galā ar slodzi, 2) partnera pakalpojumu, kas atbild tikai pēc viena diena caur REST. Kur izmantot sinhrono, kur asinhrono saziņu un kādus rīkus?

sobes.tech AI

Atbilde no AI

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

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

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

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

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

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

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

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