14289
Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/1961404
Честно говоря я не из книжек эту инфу добывал, по этому к сожалению нет
Читать полностью…
Т.е всё сломается если 200 от другой системы пришло, но закомитить не получилось если например база прилегла
Читать полностью…
На картинке видимо перевод денег между двумя "банками". По этому скорее всего это разные сервисы
Читать полностью…
оркестратор с сагой уже могут и дождаться, но это зависит от кейса сильно
Читать полностью…
Если на каком-то из моментов упадёт сервак, то все остальные будут находится заблоченными, до момента пока не восстановиться сервак
Так?
2 phase commit, 3 phase commit, saga гуглишь, смотришь ченить адекватное
Читать полностью…
в чистом виде 3pc, сейчас не используется. У неё есть один недостаток очень жирный
Будет проблема если половина сервисов успеют получить precommit и другая половина не успеет
service1.precommit()
service2.precommit()
# fail
service3.precommit()
Вместо неё используется более хитрые протоколы, где ноды обмениваются между собой данными при падении оркестратора.
смысл в любом случае не в переживании падения, а в том, чтобы падение чего либо не нарушило целостность действия
Читать полностью…
Первую prepare называют, и сводится она к тому, чтоб проверить и залочить все нужное, чтобы можно было отпускать партисипантов.
При этом еще начинают следить за временем ответов.
В случае с сагой, чуть-чуть по другому
Если сервак падает, то вроде как не блокируются остальные
Интересно, тоесть в одном случае 3pc: если нужно чтоб главный получил все что все согласны и после кинуть в промежуточный момент, а там по факту все знают о том что процесс почти завершён и могут доделать все самостоятельно, то при saga есть система компенсаций, тоесть есть сервис который последовательно все вызывает, то в случае если оркестр упал, все просто останется в той последовательности которой была и дождётся когда оркестр поднимется
Я правильно понял?