TimeOutexception в крае с использованием ведущего и Hystrix -- spring поле с участием netflix поле с участием netflix-eureka поле с участием netflix-zuul поле с участием netflix-feign пол Связанный проблема

TimeoutException in edge using Feign and Hystrix


0
vote

проблема

русский

Я строю приложение для тренировок с API Netflix Micro-Services.

Это мой край, начиная с localhost: 9999:

 <Код> @EnableHystrix @EnableZuulProxy @EnableEurekaClient @SpringBootApplication public class EdgeApplication {     public static void main(String[] args) {         SpringApplication.run(EdgeApplication.class, args);     } }   

Я определил 2 следующих приложения:

<Код> app-a обнажает простой веб-сервис <код> service-a и начинается на localhost: 8081 <Код> app-b обнажает веб-сервис <код> service-b , который звонит <код> service-a и запускается на localhost: 8082

<Код> service-b Вызывы <Код> service-a Использование feignix itignix:

 <Код> @FeignClient(value = "app-a", fallback = AppAFallback.class) public interface AppAClient {     @RequestMapping(value = "service-a", method = RequestMethod.GET)     List<Entity> serviceA(); }   
 <Код> @Component public class AppAFallback implements AppAClient {     private static final Entity DEFAULT_ENTITY = new Entity();      @Override     public List<Entity> serviceA() {         return Collections.singletonList(DEFAULT_ENTITY);     } }   

Хотя <код> app-a0 и <код> app-a1 работает, каждый сервис отвечает, как ожидается:

    .
  • http: // localhost: 8081 / Service-A
  • http: // localhost: 8082 / Сервис-б
  • http: // localhost: 9999 / app-a / service-a через край)
  • http: // localhost: 9999 / app-b / service-b ( через край)

Запасной <код> app-a2 должен быть вызван, если <код> app-a3 не работает. Однако я должен ждать около 1 минуты до того, как это произойдет.

Сразу после того, как <код> app-a4 не работает:

    .
  • http: // localhost: 8081 / service-a работает хорошо, а отбления называется
  • http: // localhost: 8082 / Сервис-б не доходит до предела
  • http: // localhost: 9999 / app-a / service-a timeout : <код> app-a5
  • http: // localhost: 9999 / app-b / service-b timeout : <код> app-a6

и 1 минута после <код> app-a7 не работает:

    .
  • http: // localhost: 8081 / service-a работает хорошо, а отбления называется
  • http: // localhost: 8082 / Сервис-б не доходит до предела
  • http: // localhost: 9999 / app-a / service-a работает Ну а отпасться называется
  • http: // localhost: 9999 / app-b / service-b general : Балансировщик нагрузки не имеет доступных серверов для клиента: <Код> app-a8

И это результат, который я ожидал. Любая идея о том, почему звонки <Код> app-a9 сразу после <код> service-a0 down дают мне время ожидания?

заранее спасибо за вашу помощь.

Английский оригинал

I'm building a training app with Netflix micro-services APIs.

This is my edge, starting on localhost:9999:

@EnableHystrix @EnableZuulProxy @EnableEurekaClient @SpringBootApplication public class EdgeApplication {     public static void main(String[] args) {         SpringApplication.run(EdgeApplication.class, args);     } } 

I defined the 2 following apps:

app-a exposes a simple web service service-a and starts on localhost:8081 app-b exposes a web service service-b which calls service-a, and starts on localhost:8082

service-b calls service-a using Netflix Feign:

@FeignClient(value = "app-a", fallback = AppAFallback.class) public interface AppAClient {     @RequestMapping(value = "service-a", method = RequestMethod.GET)     List<Entity> serviceA(); } 
@Component public class AppAFallback implements AppAClient {     private static final Entity DEFAULT_ENTITY = new Entity();      @Override     public List<Entity> serviceA() {         return Collections.singletonList(DEFAULT_ENTITY);     } } 

While app-a and app-b are running, every service answers as expected:

  • http://localhost:8081/service-a
  • http://localhost:8082/service-b
  • http://localhost:9999/app-a/service-a (through edge)
  • http://localhost:9999/app-b/service-b (through edge)

The fallback AppAFallback should be called if app-b is down. However I have to wait about like 1 minute before it happens.

Just after the app-b is down:

  • http://localhost:8081/service-a works well and the fallback is called
  • http://localhost:8082/service-b is not reachable
  • http://localhost:9999/app-a/service-a TIMEOUT : HystrixRuntimeException: app-a timed-out and no fallback available.
  • http://localhost:9999/app-b/service-b TIMEOUT : HystrixRuntimeException: app-b timed-out and no fallback available.

And 1 minute after app-b is down:

  • http://localhost:8081/service-a works well and the fallback is called
  • http://localhost:8082/service-b is not reachable
  • http://localhost:9999/app-a/service-a works well and the fallback is called
  • http://localhost:9999/app-b/service-b GENERAL : load balancer does not have available server for client: app-b

And this is the result I expected. Any idea about why the calls to app-a/service-a just after app-b is down are giving me TIMEOUT?

Thanks in advance for your help.

</div
              

Список ответов

0
 
vote

У меня есть та же проблема, и я думаю (не тестировал), это частота обновления Eureka, приведет к проблеме. Сразу после того, как App-B опустится, Eureka все еще думает, что app-b - это (еще не проверил сердцебиение). И после App-B снижается на 1 минуту, Eureka известна App-B, просто говорит вашему приложению - a нет app-b, таким образом, последующая ошибка сразу.

 

I've experience the same problem, and I think (not tested), it's Eureka's updating frequency cause the problem. Just after app-b is down, Eureka still thinks app-b is up (not yet checked the heartbeat). And after app-b is down 1 minute, Eureka known app-b is down, just tells your app-a there is no app-b, thus the fallback fired immediately.

</div
 
 

Связанный проблема

0  Не могу получить Postgres, работающие с весенними ботинками, гибернацией, росценой и Heroku  ( Cant get postgres working with spring boot hibernate gradle and heroku ) 
Я пытался развернуть мое приложение к Heroku, он был ранее проходить локально, успешно используя базу данных Hibernate. Теперь я пытаюсь поменяться в базе дан...

2  Изменить формат дата в DTO JSON на возвращении через @Responsebode  ( Change date format in dto json on returning through responsebody ) 
Я просто хочу изменить формат даты в моем DTO, возвращенный @Responseboodbody Мой вопрос не Этот вопрос как мой выход Список JSON и я печатаю его по почте...

0  Webasyncmanageristegrationfilter.dofilternernal  ( Webasyncmanagerintegrationfilter dofilterinternal ) 
<Код> @RequestMapping(value="/login", method=RequestMethod.POST) public String userLog( Model model, @ModelAttribute("password") String password, ...

2  Неспособность создавать «монгомаксиновую боб», когда тестирование единицы с FOGO  ( Failing to create mongomappingcontext bean when unit testing with fongo ) 
Я в настоящее время устанавливаю тест подразделения для проекта, на котором я работаю, и я бегаю в немного стены. Проект, на котором я работаю, использует Mon...

0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change  ( Testing case where null should be returned using restcontroller with mockito fai ) 
Я хочу проверить корпус NullPointexception, который следует бросить контроллер, который я проверяю, но я всегда получаю ошибку NullPointexception. Я пытаюсь п...

21  Spring + Hibernate: другой объект с тем же значением идентификатора уже был связан с сеансом  ( Spring hibernate a different object with the same identifier value was alrea ) 
В моем приложении, который использует пружину и гибернат, я анализируют файл CSV и заполните дБ, вызывая <код> handleRow() каждый раз, когда запись прочитана...

2  Весна @Pathvariable без окончания косоискания (строка с IP-адресом)  ( Spring pathvariable without ending slash string with ip address ) 
Это часть моего контроллера: <код> Item { id: settings property alias snapshot: snapshot QtObject { id: snapshot property string...

0  Настройка сайта с помощью Java с доступом к базе данных  ( Setup a website using java with database access ) 
Я пытаюсь выучить и лучше понять процесс общения Java с веб-контентом. В настоящее время у меня есть законченный проект Java, который связывается с базой дан...

0  Весенний ботинок с Oauth2  ( Spring boot with oauth2 ) 
У меня разработал логин Google OAUTH2 в весеннем ботинке и его отлично. Я хочу перенаправить на некоторое определенное URL после нажатия кнопки. Я использую <...

35  Перезагрузить контекст приложения Spring после каждого теста  ( Reload spring application context after every test ) 
У меня есть тестовый класс, который содержит 2 теста: <код> @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicati...

1  Как вызвать мой метод reзов API, интегрированный с Redis на Windows?  ( How to invoke my restful api method integrated with redis on windows ) 
Я пытаюсь запустить образец весеннего загрузочного приложения с Redis. Я использую завод соединения JEDIS и установив его на заводе подключения шаблона Redis....

0  Конфигурация Spring Security не удается  ( Spring security configuration fails ) 
У меня есть некоторые проблемы с Spring Web Security и моей базой данных. Если я использую <код> @Configuration @EnableWebSecurity public class BBSecurity e...

0  Spring MVC - прохождение пустой даты в качестве параметра  ( Spring mvc passing an empty date as param ) 
Я пытаюсь реализовать фильтр на одном из моих контроллеров. Это контроллер <код> ./make-standalone-toolchain.sh --platform=android-21 --install-dir=/tmp/m...

0  Переключение баз данных при тестировании весной MVC веб-приложения?  ( Switching databases when testing spring mvc web application ) 
Весенний проект (в его производственной форме) будет использоваться база данных MySQL. Я хочу, чтобы тесты бежали в проекте, чтобы использовать Hypersonic_in_...

0  Установите боб по умолчанию для автовигания, если Byname не удается  ( Set a default bean to autowire if byname fails ) 
У меня есть многочисленные классы IO, которые все требуют PKI Info (Key & Amp; Truststore), чтобы быть вскрыть в них, чтобы они могли установить соединения. В...

Связанный проблема

0  Не могу получить Postgres, работающие с весенними ботинками, гибернацией, росценой и Heroku 
2  Изменить формат дата в DTO JSON на возвращении через @Responsebode 
0  Webasyncmanageristegrationfilter.dofilternernal 
2  Неспособность создавать «монгомаксиновую боб», когда тестирование единицы с FOGO 
0  Чехол для тестирования, где нуль должен быть возвращен с помощью RestController с Mockito Change 
21  Spring + Hibernate: другой объект с тем же значением идентификатора уже был связан с сеансом 
2  Весна @Pathvariable без окончания косоискания (строка с IP-адресом) 
0  Настройка сайта с помощью Java с доступом к базе данных 
0  Весенний ботинок с Oauth2 
35  Перезагрузить контекст приложения Spring после каждого теста 
1  Как вызвать мой метод reзов API, интегрированный с Redis на Windows? 
0  Конфигурация Spring Security не удается 
0  Spring MVC - прохождение пустой даты в качестве параметра 
0  Переключение баз данных при тестировании весной MVC веб-приложения? 
0  Установите боб по умолчанию для автовигания, если Byname не удается 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.