1 ответ:
общие
вообще, цель картины перегородки во избежание недостатки в одной части системы для того чтобы принять всю систему вниз. Термин происходит от судов, где корабль разделен на отдельные водонепроницаемые отсеки, чтобы избежать одного пробоины корпуса, чтобы затопить весь корабль; он будет затоплять только одну переборку.
реализация шаблона перегородки может принимать различные формы в зависимости от того, от каких неисправностей вы хотите защитить систему. Я буду только обсуждать тип ошибок, которые Hystrix обрабатывает в этом ответе.
Я думаю, что модель переборки была популяризирована книгой Отпустите Ее! Майкл Т. Нюгард.
Какую Истерику Решает
реализация перегородки в Hystrix ограничивает количество одновременных вызовов компонент. Таким образом, количество ресурсов (обычно потоков), ожидающих ответа от компонента, ограничено.
Предположим, у вас есть запрос многопоточное приложение (например, типичное веб-приложение), которое использует три разных компонента,A,B и C. Если запросы к компоненту C начинает висеть, в конце концов все потоки обработки запросов будут висеть в ожидании ответа от C. Это сделало бы приложение полностью не реагирующим. Если просит C обрабатывается медленно у нас есть аналогичная проблема, если нагрузка высока достаточно.
реализация шаблона перегородки Hystrix ограничивает количество одновременных вызовов компонента и в этом случае сохранила бы приложение. Предположим, у нас есть 30 потоков обработки запросов и есть ограничение в 10 одновременных вызовов C. Тогда не более 10 потоков обработки запросов могут зависать при вызове C, остальные 20 потоков все еще могут обрабатывать запросы и использовать компоненты A и B.
приближение истерики
Hystrix ' имеет два различных подхода к переборке, изоляции потоков и изоляции семафоров.
Нить Изоляция
стандартный подход-это сдать все запросы компоненту C в отдельный пул потоков с фиксированным числом потоков и без очереди запросов (или небольшой).
Семафор Изоляции
другой подход состоит в том, чтобы иметь все абоненты получают разрешение (с таймаутом 0) перед запросами к C. Если разрешение не может быть получено из семафора, звоните в C не прошел.
различия
преимущество подхода пула потоков заключается в том, что запросы передаются в C может быть тайм-аут, что-то, что не возможно при использовании семафоров.
Comments