Свойства ленты MaxAutoRetries не работают - PullRequest
0 голосов
/ 01 ноября 2018

Я установил пару конфигураций повторных попыток в моем файле application.properties. Тем не менее, ни один из них не работает, когда я запустил приложение ленты.

//this is my service
@RestController
@SpringBootApplication
public class HelloApplication {
    @Value("${server.port}")
    private int port;

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication .class, args);
    }
    @GetMapping(value="/app")
    public String notification() {
        return "This Is HelloService running on port:"+ port;
    }
}

Вот мой RibbonAppApplication класс:

@SpringBootApplication(scanBasePackages={"com.netflix.client.config.IClientConfig"})
@RestController
@RibbonClient(name= "hello", configuration=RibbonConfig.class )
public class RibbonAppApplication {
    @Autowired
    private RestTemplate restTemplate;
    public static void main(String[] args) {
        SpringApplication.run(RibbonAppApplication.class, args);
    }
    @GetMapping
    public String getService() {
        return restTemplate.getForObject("http://hello/app",String.class);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Это application.properties для RibbonAppApplication:

ribbon.eureka.enabled=false
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

hello.ribbon.listOfServers=http://localhost:1111, http://localhost:2222
hello.ribbon.OkToRetryOnAllOperations=false
hello.ribbon.MaxAutoRetries=0
hello.ribbon.MaxAutoRetriesNextServer=1

Спасибо вам, ребята, за помощь!

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы должны добавить зависимость spring-retry в файл pom.xml:

<!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->
<dependency>
    <groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
    <version>1.2.4.RELEASE</version>
</dependency>
0 голосов
/ 28 декабря 2018

Отсутствие зависимости от Sprint Retry почти всегда является причиной того, что Ribbon не может повторить попытку. Spring Retry - зависимость для функции повтора для Zuul / Ribbon.

Если запрос не выполнен, вы можете захотеть, чтобы запрос был повторен автоматически. Для этого при использовании Sping Cloud Netflix вам необходимо включить Spring Retry в путь к классу вашего приложения. Когда Spring Retry присутствует, RestTemplates, Feign и Zuul с балансировкой нагрузки автоматически повторяют любые неудачные запросы (при условии, что ваша конфигурация позволяет это делать)

Добавление Spring Retry в pom.xml должно исправить это.

Документы по теме: https://cloud.spring.io/spring-cloud-netflix/multi/multi_retrying-failed-requests.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...