Обязательна ли откатная реализация Hystrix? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть метод, вызывающий сторонний ресурс для извлечения объекта Dog. Если вызов не удался, у меня нет альтернативного пути для возврата объекта Dog.

Итак, что является предпочтительным вариантом здесь: - 1. Реализация резервного отклика Hystrix и возврат нулевого объекта Dog. 2. Hystrix сгенерирует исключение в случае сбоя вызова, и при перехвате исключения будет возвращен нулевой объект Dog.

Вариант 1 или 2? Является ли резервный Hystrix обязательным требованием к реализации, если у вас нет альтернативного подхода? Я думаю нет, каково ваше мнение? Что предлагает руководство Hystrix?

1 Ответ

0 голосов
/ 28 апреля 2020

Из того, что вы говорите, оба варианта 1 и 2 приводят к одному и тому же результату - возвращается ноль собак. Я бы сказал, что в этом случае лучше использовать запасной вариант, потому что он чище. Откат будет определен как часть команды, и как таковой будет согласован для всех применений этой команды. Это не будет правдой, если вы обработаете это как исключение. В этом случае вам нужно помнить о том, чтобы реализовать обработку исключений во всех местах, где выполняется вызов ... и таким же образом - и легко ошибиться, забыв об обработке некоторого места.

Обязательно ли иметь запасной вариант? Это не обязательно. Если не указано иное, возникает исключение. В вашем случае у вас есть запасная стратегия - она ​​очень проста. На самом деле он описан в Hystrix Wiki как Silent Fail, и вы можете прочитать больше об этом на https://github.com/Netflix/Hystrix/wiki/How-To-Use#Common -Patterns-FailSilent

Стоит задуматься о том, какие операции требуют отступления или, скорее, каким должен быть запасной вариант. Стоит предоставить запасной вариант для операции чтения. Для операции записи это может быть не очень хорошей идеей, как описано здесь: https://github.com/Netflix/Hystrix/wiki/How-To-Use#Fallback.

Определение стратегии отката является частью шаблона. Представьте себе проект с несколькими разработчиками, в котором используется Hystrix. Будет приятно узнать, где именно 1016 *, чтобы увидеть запасную стратегию. Это огромное преимущество.

Следует иметь в виду, что исключения являются более дорогостоящими для обработки, поэтому их использование в качестве альтернативной стратегии - пустая трата ресурсов. Это не будет проблемой в небольшом проекте с небольшим количеством запросов, но может вызвать проблемы в системе, которая обрабатывает много таких вызовов.

...