В каком порядке FeignClient обнаруживает сервисы?

У меня есть два экземпляра для первой службы. Они работают на разных портах и ​​имеют одинаковые имена. Эти сервисы зарегистрированы в Eureka. Также у меня есть вторая служба, которой нужно обнаружить один экземпляр первой службы. Второй сервис реализован с помощью FeignClient и также зарегистрирован в Eureka. Каждый раз, когда вторая служба обнаруживает экземпляр первой службы в случайном порядке.

Какие основные сервисы обнаружения есть у FeignClient? Какой экземпляр выберет FeignClient, если обнаружит более одного экземпляра первой службы?

Если я использую DiscoveryClient вместо FeignClient, я могу получить список экземпляров службы и выбрать первый экземпляр или выбрать экземпляр с настраиваемыми метаданными.

Как насчет FeignClient?


person Alexander    schedule 18.07.2017    source источник


Ответы (1)


Я думаю, что нашел ответ. Лента управляет выбором подходящей услуги. Например, мы можем увидеть это в следующем коде:

 public Optional<Server> chooseRoundRobinAfterFiltering(List<Server> servers, Object loadBalancerKey) {
        List<Server> eligible = getEligibleServers(servers, loadBalancerKey);
        if (eligible.size() == 0) {
            return Optional.absent();
        }
        return Optional.of(eligible.get(nextIndex.getAndIncrement() % eligible.size()));
    }

У нас есть список подходящих серверов, и выбор одного из них — простая логика.

person Alexander    schedule 19.07.2017