Микросервисные схемы автоматического выключателя и службы обнаружения - PullRequest
0 голосов
/ 04 июня 2018

Я новичок в микросервисах и сомневаюсь, что Google действительно не помог мне.Я знаю, что микросервис должен быть независимым, поэтому, даже если один из его коллег выходит из сети, он должен продолжать работать в обычном режиме.

Имея это в виду, я не могу понять прерыватель цепи или даже обнаружение службы,например, где я должен положить это?Поскольку каждый звонок, который я делаю в любой микросервис, проходит через автоматический выключатель, скажем, сервер моей службы автоматического выключателя отключается, поэтому все мое приложение обречено, пока я его не исправлю.Как это обойти?

Самое главное, ГДЕ я должен включить выключатель, в том числе и в микросервис?

1 Ответ

0 голосов
/ 05 июня 2018

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

Если вы не используете его, то в некоторых случаях (например, когда некоторые микросервисы не работают) ваша системабудет действовать, как он находится под атакой DOS самостоятельно.Эта ситуация проявляется, когда вы включили синхронные вызовы.Например, если у вас есть следующее: A -> B -> C (A вызывает B, который вызывает C).Если C не отвечает, а A продолжает звонить, то B может быть перегружен управлением ожидающими вызовами от A и не сможет отвечать на законные вызовы от других служб, которые обычно будут успешными.

Наиболее распространенное место для использования автоматического выключателянаходится в шлюзе API, где осуществляется большинство удаленных вызовов (это его основная ответственность).Вы можете использовать шаблон и в клиентах, чтобы заставить их постоянно останавливаться и многократно вызывать мертвый микросервис.

Хотя микросервисы независимы в отношении устойчивости (они могут функционировать даже в случае сбоя другого), это не означает, чтоони не общаются друг с другом.Они могут взаимодействовать, но асинхронно, т. Е. Когда одно микросервисное устройство хочет обновить свой локальный кэш данными из другого микросервисного устройства в фоновом процессе.

...