Size: a a a

2020 April 07

AE

Alexandr Emelyanov in pro.jvm
На самом деле можно будет просто сделать колбэк на откат в транзакции и снести из редиса данные
источник

МК

Максим Калашников in pro.jvm
Alexandr Emelyanov
На самом деле можно будет просто сделать колбэк на откат в транзакции и снести из редиса данные
ну так это весьма вероятно единственный путь, как это сэмулировать. Ну или делать временную вставку с каким-то временем жизни. Но! А если перед выполнением этого колбэка контейнер с приложением упадет?
источник

AE

Alexandr Emelyanov in pro.jvm
Вообще в редисе есть транзакции и даже менеджер транзакций, гуглится на раз два https://dzone.com/articles/how-to-manage-transactions-in-redis-on-java
источник

AE

Alexandr Emelyanov in pro.jvm
Максим Калашников
ну так это весьма вероятно единственный путь, как это сэмулировать. Ну или делать временную вставку с каким-то временем жизни. Но! А если перед выполнением этого колбэка контейнер с приложением упадет?
Для этого делают журнал транзакций
источник

МК

Максим Калашников in pro.jvm
ну я редис просто так назвал. Пусть не редис, а какая-нить DynamoDB. Кемелу же должно быть пофиг, у него должно быть какое-то универсальное решение внутри
источник

МК

Максим Калашников in pro.jvm
Alexandr Emelyanov
Вообще в редисе есть транзакции и даже менеджер транзакций, гуглится на раз два https://dzone.com/articles/how-to-manage-transactions-in-redis-on-java
ну ты все сводишь к тому, что надо делать XA транзакции, так?
источник

AE

Alexandr Emelyanov in pro.jvm
Максим Калашников
ну ты все сводишь к тому, что надо делать XA транзакции, так?
да. либо пытаться cqrs
источник

AE

Alexandr Emelyanov in pro.jvm
Максим Калашников
ну я редис просто так назвал. Пусть не редис, а какая-нить DynamoDB. Кемелу же должно быть пофиг, у него должно быть какое-то универсальное решение внутри
почему у камела то?
источник

AE

Alexandr Emelyanov in pro.jvm
у спринга что ли фишка транзакций?
источник

AE

Alexandr Emelyanov in pro.jvm
или акки?
источник

AE

Alexandr Emelyanov in pro.jvm
вертекса?
источник

AE

Alexandr Emelyanov in pro.jvm
они все берут готовые ТМ и используют через стандартные интерфейсы
источник

AE

Alexandr Emelyanov in pro.jvm
и тут я бы взял спринг, а не верблюда
источник

AE

Alexandr Emelyanov in pro.jvm
какой сейчас у вас стек?
источник

МК

Максим Калашников in pro.jvm
амазоновский полностью :)
источник

МК

Максим Калашников in pro.jvm
ну про верблюда понятно, просто у нас нет транзакшен менеджера, который работал бы например с SNS, так как SNS/SQS - это не JMS
источник

AE

Alexandr Emelyanov in pro.jvm
тогда ищите решения именно под них
источник

AK

Alexander Komarov in pro.jvm
Максим Калашников
Подскажите, рассматриваем возможность иcпользования apache camel в проекте. Но не могу понять, если делать простой роутинг аля rest -> какая-то логика -> публикация сообщения, то как camel гарантирует консистентность? Там XA транзакции под капотом или он как-то еще умеет?
а в чем проблема? возвращаете http 200 на запрос в конце роута, после того как получили подтверждение что отправили сообщение куда надо. если вопрос в том, а что будет если кемел принял запрос, отправил сообщение куда-то и упал, не ответив http 200 - так это из коробки просто так почти нигде не работает, нужны приседания.
источник

AE

Alexandr Emelyanov in pro.jvm
Alexander Komarov
а в чем проблема? возвращаете http 200 на запрос в конце роута, после того как получили подтверждение что отправили сообщение куда надо. если вопрос в том, а что будет если кемел принял запрос, отправил сообщение куда-то и упал, не ответив http 200 - так это из коробки просто так почти нигде не работает, нужны приседания.
хотят очередь с состоянием кеша синкать
источник

МК

Максим Калашников in pro.jvm
Alexander Komarov
а в чем проблема? возвращаете http 200 на запрос в конце роута, после того как получили подтверждение что отправили сообщение куда надо. если вопрос в том, а что будет если кемел принял запрос, отправил сообщение куда-то и упал, не ответив http 200 - так это из коробки просто так почти нигде не работает, нужны приседания.
тут скорее про то, что если мы в ходе обработки сохранили куда-нить в БД, а потом не опубликовали сообщение, то будет больно. Надо как-то гарантировать, что сообщение мы eventually опубликуем
источник