Ответы пользователя по тегу Kafka
  • Как организовать работу микросервисов в kafka?

    @Arlekcangp
    Разработчик, Лид, Архитектор ПО
    Мне видится, что правильнее информацию о остатке товара хранить в отдельном сервисе. Пусть это будет сервис 2 А кошелёк и оплату вместе-сервис 3 Так схема будет такой:
    1. Сервис 1 получает запрос
    2. Сервис 1 идет к сервису 2 за информацией есть ли запрошенный товар и если он есть то "резервирует" его.
    3. Сервис 1 отправляет сервису 3 информацию для оформления оплаты.
    4. Если оплата успешна (у пользователя достаточно средств и платёжная система отработала без ошибок) то сервис 1 "подтверждает резерв" товара через сервис 2. В противном случае сервис 1 "возвращает резерв" сервису 2. Резервированый товар не показывается при показе остатков другим пользователям.
    Такая схема напоминает паттерн распределённой транзакции с двух-разным комитом. Поситайте про него. В данном случае использовать Кафку или нет большого значения не имеет, т к кафка-это только канал связи. Все те же самые манипуляции придётся проводить и при использовании обычного рест апи.
    Если же делать синхронно, то в сервисе 1 операции станут последовательными, и микросервисная организация теряет смысл, т к это будет медленнее чем монолит и не масштабируемо. Но для такого усложнения должны быть объективные причины - высокая нагрузка. Если же еë нет то монолит проще и дешевле.
    Ответ написан
    4 комментария