Я бы предположил, что дело не в том, что мы не можем реализовать XA или 2PC для микросервисов, а в том, что мир API на основе HTTP еще не был политически приемлемым. В более старом приложении компоненты могут представлять собой более широкий набор сложных шагов бизнес-логики, а также охват, оборудование, географию, организации и технологии. то есть мои бизнес-компоненты могут быть распределены по нескольким компаниям с разными пользовательскими интерфейсами в каждой. Сетевые протоколы для интеграции всех этих поддерживаемых распределенных транзакций (2PC), а также распространения идентификаторов пользователей и т. Д.
Это связано с бюрократией и наследием. Стандартизованные распределенные транзакции, поддерживаемые несколькими совместимыми платформами, восходят к 80-м годам. ИТ в значительной степени движимы модой, что бы произошло на вашем рабочем месте, если бы вы слишком активно отстаивали этот тип функций.
Примечание: по вопросу о том, что произойдет, если управляющий узел выйдет из строя. В традиционных приложениях, если компонент, фиксирующий приложение, умирает в середине фиксации, транзакция в конечном итоге истекает по таймауту и откатывается для каждого из компонентов. В некоторых случаях были доступны восстанавливаемые функции транзакций. если коммиттер восстановился до истечения тайм-аута, он восстановит транзакцию и продолжит фиксацию. Мы часто наблюдаем это в корпоративных приложениях: если сервер приложений отказывает, он восстанавливает внутрипроцессную работу.
пока я в настроении разглагольствовать :) - некоторые эксперты утверждают, что XA должен быть реализован на единой платформе, такой как JTA. Я никогда не считал, что это правда, XA всегда работал для меня без проблем с базами данных, серверами приложений и мэйнфреймами)
person
Chris
schedule
17.02.2021