Предисловие
Spring Cloud - это полная структура для реализации микросервисов на основе Spring Boot. Он предоставляет компоненты, необходимые для разработки микросервиса, таких как управление конфигурацией, обнаружение услуг, автоматические выключатели, интеллектуальная маршрутизация, микроагенты, шина управления, глобальные замки, кампании принятия решений, распределенные сессии и управление государством кластера. Самое главное, что если вы используете его с платформой Spring Boot, это сделает вас очень удобным для разработки облачных сервисов с архитектурой микросервиса. Spring Cloud содержит много подкрасов, среди которых Spring Cloud Netflix является одной из структур, разработанных Netflix, а затем включенная в семейство Spring Cloud. Его основные модули включают в себя: обнаружение обслуживания, выключатели схемы и мониторинг, интеллектуальную маршрутизацию, балансировку нагрузки клиента и т. Д.
Эта статья представит вам соответствующий контент тайм -аута компонентов Spring Cloud и поделиться им для вашей ссылки и обучения. Я не скажу многое ниже, давайте посмотрим на подробное введение вместе.
Тайм -аут ленты
Глобальные настройки:
лента: readtimeout: 60000connecttimeout: 60000
Локальные настройки:
Service-ID: лента: readtimeout: 1000connecttimeout: 1000
Среди них Service-ID является виртуальным именем хоста, используемым лентой, которое, как правило, совпадает с именем службы, зарегистрированным на сервере Eureka, то есть он такой же, как spring.application.name .
Тайм -аут Фейна
Начиная с Spring Cloud Edgware, Feign поддерживает настройку тайм -аутов со свойствами:
Feign: Client: Config: FeignName: ConnectTimeout: 5000 READTIMEOUT: 5000
Для старой версии вы можете написать feign.Request.Options , см org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration#feignRequestOptions
Повторный тайм -аут
Иногда мы можем использовать Resttemplate, например,
@Bean@loadbalancedpublic resttemplate resttemplate () {return new Resttemplate ();}В настоящее время тайм -аут может быть установлен следующим образом:
@Bean@loadbalancedPublic resttemplate resttemplate () {simpleclienthttprequestfactory soomblienthttprequestfactory = new SimpleClientHttpRequestFactory (); SimpleClientHttpRequestFactory.setContimeout (1000); SimpleClientHtprequestfactory.SetCONTIMETTIMEUOUT (1000); SimpleClientHtprequestActory.setContimeout (1000); RESTTEMPLATE (SimpleClientHttpRequestFactory);}Тайм -аут Зуула
Тайм -аут Zuul более сложный, потому что Zuul интегрирует ленту и Hystrix. Ниже приведены две ситуации:
Если маршрут Zuul использует ленту
Затем: тайм -аут Zuul связан с лентой и Hystrix. В настоящее время тайм -аут Zuul можно настроить аналогично следующему:
Hystrix: Команда: По умолчанию: выполнение: Изоляция: Поток: TimeOutInmilliseconds: 1000Ribbon: ReadTimeout: 1000 ConnectTimeout: 1000
Анализ кода: в этом случае фильтр, используемый для пересылки Zuul, является org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter , который интегрирует Hystrix и ленту.
Если маршрут Zuul не использует ленту
Например: конфигурация маршрутизации Zuul заключается в следующем:
Zuul: Маршруты: Route-Route: # В этом методе конфигурации пользовательский управление просто дает маршруту имя и может быть названо по желанию. URL: http: // localhost: 8000/ # Указанный путь URL:/user/** # Путь, соответствующий URL.
Затем тайм -аут Zuul в это время связан только со следующими двумя конфигурациями:
Zuul: Host: Socket-Timeout-Millis: 10000 Connect-Timeout-Millis: 2000
Анализ кода: путь к непосредственной настройке маршрутизации URL -адреса не используется для ленты или Hystrix. Фильтр, используемый для пересылки Zuul, является org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter . В этом фильтре Zuul использует Apache HttpClient для вперед.
В реальных сценариях иногда можно использовать два метода маршрутизации, поэтому рекомендуется настроить все вышеперечисленные атрибуты.
Тайм -аут Hystrix
Hystrix: Команда: По умолчанию: выполнение: тайм -аут: включено: true Изоляция: Поток: TimeOutInmilliseconds: 1000
Как и выше, тайм -аут по умолчанию для Hystrix составляет 1 секунду. Механизм тайм -аута включен по умолчанию. Чтобы отключить тайм -аут Hystrix, установите xxx.enabled в false.
Советы
Если с Hystrix используется компонент, обычно рекомендуется, чтобы Hystrix Timeout> Timeout Fore Components Timous, в противном случае это может привести к выходу из строя.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.