#spring-boot #netflix-eureka #netflix-zuul #hystrix #netflix-ribbon
#весенняя загрузка #netflix-эврика #netflix-zuul #hystrix #netflix-лента
Вопрос:
Я пытаюсь использовать микросервисы с eureka и zuul. И есть проблема со всеми запросами, которые занимают более 1 секунды. Как я понял, 1 секунда — это тайм-аут hystrix по умолчанию, и для настройки тайм-аутов в Zuul я должен настроить эти свойства:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds
ribbon.ConnectTimeout
ribbon.ReadTimeout
но когда я их устанавливаю, для каждого из них в Intelije Idea появляется предупреждение «Не удается разрешить свойство конфигурации …». И, похоже, они не применяются и не работают.
Ответ №1:
Установка времени чтения ленты на сервере zuul должна решить эту проблему.
ribbon:
ReadTimeout: 60000
Примечание: В ReadTimeout чувствителен к регистру.
Комментарии:
1. Это устранило проблему. Спасибо
Ответ №2:
Добавьте следующее свойство в службу шлюза Zuul
hystrix:
команда:
по умолчанию:
выполнение:
изоляция:
поток:
Время ожидания в миллисекундах: 30000
лента: время
чтения: 60000
время ожидания подключения: 3000
эврика:
включено: true
zuul:
игнорируемые сервисы: ‘*’
хост:
время ожидания: -1
время ожидания подключения в миллисекундах: 5000
максимальное количество подключений на маршрут: 10000
максимальное количество подключений: 5000
время ожидания сокета в миллисекундах: 60000
семафор:
максимальное количество семафоров: 500
Комментарии:
1. Спасибо! Почему Netflix использует две записи — ReadTimeout и connection-timeout?
Ответ №3:
Ответ отредактирован
Таким образом, вы увеличите время ожидания Hystrix (глобально):
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
или для каждой службы:
hystrix:
command:
<serviceName>:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
Комментарии:
1. к сожалению, это не работает. и после «hystrix» доступны только свойства: «metrics» и «shareSecurityContext». Свойства «command» нет
2. Отредактировано, попробуйте сейчас @Vados
3. Я получаю тайм-аут шлюза через 3 секунды, если я увеличил
timeoutInMilliseconds
значение до 10000
Ответ №4:
В вашем application.properties сервера zuul просто добавьте эти переменные:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 240000
ribbon.ConnectTimeout: 120000
ribbon.ReadTimeout: 120000
Вы также можете обновить свой проект в Intellij.