Как настроить автоматический выключатель в Spring Cloud MVC?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как настроить автоматический выключатель в Spring Cloud MVC?

Сообщение Anonymous »

Я работаю над API-шлюзом для своего личного проекта. У меня проблема: когда первый запрос POST направляется через шлюз в службу аутентификации, я получаю ошибку, однако в службе аутентификации я получаю сообщение 200. Хорошо, я понял, что это все из-за инициализации Кафки. Когда отправляется первый запрос и служба аутентификации связывается через Kafka с почтовой службой, она просто инициализируется, и на стороне шлюза API происходит резервный сценарий, любые дальнейшие запросы всегда работают правильно. Я хочу установить какой-то «тайм-аут» запроса, чтобы он ждал, например, 5-10 секунд, и только затем вызывал резервный механизм.
Он имеет следующие версии зависимостей:< /p>

Код: Выделить всё

21
3.3.4
2023.0.3
а вот зависимости в pom.xml модуля api-gateway:

Код: Выделить всё

        
org.springframework.cloud
spring-cloud-starter-gateway-mvc


org.springframework.cloud
spring-cloud-gateway-mvc
4.1.5


org.springframework.cloud
spring-cloud-circuitbreaker-resilience4j


io.github.resilience4j
resilience4j-spring-boot3
2.1.0

Вот конфигурация маршрутизации:

Код: Выделить всё

@Bean
public RouterFunction authenticationRoute() {
return route()
.route(path("/auth/**"), http("http://localhost:8080"))
.filter(rewritePath("/auth/(?.*)", "/api/authentication/${segment}"))
.filter(circuitBreaker("authenticationServiceCircuitBreaker", URI.create("forward:/fallback")))
.build();
}
Если я удалю строку кода, которая отправляет запрос от службы аутентификации к кафке, все работает нормально, но таким образом нарушается рабочий процесс приложения. Также я попробовал конфигурацию автоматического выключателя yaml, но это тоже не увенчалось успехом, вообще говоря, ни одна конфигурация yml у меня по какой-то причине не работает, когда я пытаюсь настроить что-то вроде этого:

Код: Выделить всё

            filters:
- name: CircuitBreaker
args:
name: auth-circuit
fallbackUri: forward:/fallback
Я получаю следующую ошибку: java.lang.IllegalArgumentException: автоматический выключатель должен иметь идентификатор.
Поэтому я также не могу настроить этот автоматический выключатель в файле yml, большая часть рекомендаций написана для webflux, но не для mvc

Подробнее здесь: https://stackoverflow.com/questions/790 ... -cloud-mvc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»