Подскажите пожалуйста, а я могу вот такую штуку использовать? rpc,

только реализованное в реббите https://www.rabbitmq.com/tutorials/tutorial-six-php ( или https://habr.com/ru/articles/747644/), там есть correlation_id, страховка от network otage и прочего, как вроде бы то, что мне нужно, этакая защита от дуплицирования запроса во втором сервисе. а полноценную сагу тащить для всего двух сервисов мне кажется накладно
Вот выдержка из статьи, звучит как то,что мне нужно
мы подписываемся на специальную псевдоочередь amqp.rabbitmq.reply-to
отправляем сообщение с указанием этой очереди в качестве reply-to заголовка
кролик генерирует для нас уникальный routing_key, по которому будет должно быть опубликовано ответное сообщение в default exchange
сервер получает наше сообщение и отправляет ответ по этому routing_key.

11 ответов

31 просмотр

Стикер

Не хватило информации: 1. Можно ли запросы выполнять параллельно? 2. Что будет, если не смогли отправить во второй сервис? Надо ли откатывать?

Artyom- Автор вопроса
Vadim
Не хватило информации: 1. Можно ли запросы выполня...

Если не смогли/второй сервер не ответил на данный запрос, то откатывать

Artyom- Автор вопроса
Artyom- Автор вопроса

Нет, но какую-то защиту хотелось бы сделать, тк через grpc второй запрос бывает дублируется

Artyom
Если не смогли/второй сервер не ответил на данный ...

Только на кролике такое надежно не построить.

Artyom
Нет, но какую-то защиту хотелось бы сделать, тк че...

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

Artyom- Автор вопроса
Artyom- Автор вопроса
Vadim
Только на кролике такое надежно не построить.

А какой вариант тогда +- надёжный? Ведь это мне кажется стандартная проблема.

Artyom
А какой вариант тогда +- надёжный? Ведь это мне ка...

Вам же надо откатить, если второй сервис не ответил. Если сервис умеет отвечать, что операцию не выполнил и не сможет, тогда хореография на базе событий. Возможно, даже кролика хватит. Если сервис не умеет ясно объяснять, что не так, а только ошибку возвращает, то оркестрация, а в этом случае нужен дирижер (например, temporal).

Artyom- Автор вопроса
Vadim
Вам же надо откатить, если второй сервис не ответи...

Это если он принимает, что не может, а если какая-то сетевая ошибка. Я же по сути жестко хочу контролировать связку запрос - ответ

Похожие вопросы

Обсуждают сегодня

Version: v2.9.3 часто стало падать с ошибкой werf plan │ platform: linux/amd64,linux/arm64 └ 🏗️ image pilot (0.61 seconds) └ 🏗️ image oauth2_proxy (0.63 seconds) panic: run...
Sergey Sokolov
8
Кажется сломалась сборка в докере docker run --pull always --rm -it registry.werf.io/werf/werf:2-stable werf version ...
Evgeniy Medvedev
1
Вопрос к werf напрямую не относится, но всё же: есть хелм чарт, в нём есть лейблы, они используются для селекторов. Как их поменять ? Т.е. если просто поменять, удалить чарт ...
Anton Warm
5
Добрый день! Как-то можно заставить buildah не выводить каждую bash команду на экран? Иначе он мои секреты из heredoc показывает в консоли Github. А так как werf переносы стро...
Vyacheslav
1
Блин а мне как поумнеть ?
Toxin
191
с gcr похоже не очень корректно работает. если задать WERF_REPO_CONTAINER_REGISTRY="gcr" и WERF_REPO=us-central1-docker.pkg.dev/infra-430406/asi-hello-world тогда получаю ошиб...
Sergey Sokolov
1
Коллеги, здравствуйте. Подскажите пожалуйста. Используем версию werf v2.6.3. И стали у нас выходить в консоли вот такие "WARNINGS" как их отключить вообще? └ Adding custom ta...
vⱥ𝖉iϻ ϻⱥlͥтsͣeͫv♛
1
Всем привет! Сорри за назойливость 😄 Я пришел с предложением: 1. Мы юзаем вендор чарты, но тащим чарт к нам в репу, билдим их образы с помощью также werf, создаем dockerfile, ...
Danil Ivanov
1
Всем привет 👋 Подскажите пожалуйста, а чего тут не хватает permission или образ битый? Running with gitlab-runner 17.0.0 (44feccdf) on gitlab-runner-c58775949-d7znz YxYz2zp...
Max
2
Через ран я же могу запустить только один образ и запаралелить не могу?
Alex Подрябинкин
10
Карта сайта