Что такое шаблон перегородки, используемый Hystrix?



Hystrix, API Netflix для задержки и отказоустойчивости в сложных распределенных системах использует метод шаблона перегородки для изоляции потоков. Может кто-нибудь, пожалуйста, подробнее об этом.

293   1  

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

    Ничего не найдено.