Многие студенты знают, что я отвечаю за исследование и разработку платформы обеспечения стабильности в Meituan Dianping.Одной из функций платформы является понижение версии службы.Когда дело доходит до понижения, вы можете быть знакомы с Hystrix, открытой исходная составляющая Нетфликс, но мы в ней не участвуем.На базе второй разработки, но новой, некоторые могут сказать, пустая трата времени повторять колесостроение? Что, если колеса лучше использовать и работать быстрее, так что не бойтесь строить колеса, только непрерывные инновации могут привести к постоянному прогрессу.
Прежде всего, давайте разберемся, зачем нужно делать даунгрейд?
Стабильность сервиса является важным краеугольным камнем устойчивого развития компании.При быстром росте объемов бизнеса некоторые сервисы, которые обычно работают нормально, будут сталкиваться с различными аварийными ситуациями, а в распределенной системе каждый сервис сам по себе имеет много проблем.Управляющие факторы, такие как медлительность обработка пула потоков, что приводит к тайм-аутам запросов, недостатку ресурсов, что приводит к отклонению запросов и даже к прямой недоступности службы, простоям, зависанию базы данных, зависанию кеша, зависанию системы сообщений...
Для некоторых неосновных услуг, если возникает большое количество исключений, могут использоваться технические средства для понижения уровня услуг и предоставления неблагоприятных услуг, чтобы обеспечить гибкую доступность услуг и избежать лавинных эффектов.
Если ServiceA не может постоянно вызывать ServiceD или частота отказов очень высока, можно использовать «механизм», гарантирующий, что последующие запросы не будут вызывать ServiceD, а будут выполнять логику деэскалации.
Механизм здесь слияние даунгрейда, и принцип реализации слияния даунгрейда тоже очень прост, см. следующий рисунок:
1. Отслеживайте значение работоспособности интерфейса в режиме реального времени и автоматически включайте предохранитель при достижении состояния предохранителя. 2. Как реализовать автоматическое восстановление после включения предохранителя? Время от времени запрос отправляется на сервер для обнаружения, и если серверная служба была восстановлена, она будет восстановлена автоматически.
Конечно, конкретная реализация здесь подробно обсуждаться не будет.
Вот почему я не использовал Hystrix для вторичной разработки, в основном из-за следующих соображений: 1. Встроенная конфигурация параметров не может быть динамически изменена 2. Сложный дизайн кода затрудняет расширение новых функций 3. Ответственный за доступ к бизнесу, способ недостаточно гуманный 4. Производительность измерения давления вызывает беспокойство
Благодаря самоисследованию вы можете свободно контролировать любые детали и легко интегрироваться с внутренней структурой.
Рекламируйте свою собственную планету и с нетерпением ждем вашего присоединения
Несмотря на то, что он платный, он определенно стоит своих денег.