Эврика режим самосохранения никогда не восстанавливается

В настоящее время я сталкиваюсь с проблемой, когда Eureka никогда не удаляет экземпляры служб, которые устарели из-за неожиданного сбоя виртуальной машины. Понятно, что появился режим самосохранения Eureka, потому что было большое падение (ниже порога) в запросах на обновление службы /сердцебиение. Однако спустя 15 с лишним часов мертвые экземпляры все еще регистрируются в Эврике. Это серьезная проблема, поскольку запросы на обслуживание по-прежнему направляются в мертвые экземпляры только для возврата ошибок.

Я надеялся, что порог будет постоянно корректироваться, и через некоторое время порог Эврики будет на новом уровне нормы, и режим самосохранения будет сброшен. Мы используем Eureka в зеркальной настройке, и наши конфигурации не очень сложны.

Наши настройки:

Эврика через spring-boot-starter-parent 1.2.5.RELEASE

eureka:
  dashboard:
    path: services
    enabled: false
  instance:
    hostname: localhost
    leaseRenewalIntervalInSeconds: 3
    metadataMap:
      managementPath: /admin
      instanceId: discoveryPrimary
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    waitTimeInMsWhenSyncEmpty: 0

Можно ли настроить Eureka для сброса режима самосохранения (когда он останавливает очистку экземпляров) и позволяет ему очищать реестры сервисов, если сервисы не работают в течение 5+ минут?

7 голосов | спросил restwzeasy 15 +03002015-10-15T17:19:20+03:00312015bEurope/MoscowThu, 15 Oct 2015 17:19:20 +0300 2015, 17:19:20

2 ответа


0

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

Так что, если только 84% ваших экземпляров продлили срок аренды, eureka «включает» самосохранение.

Это означает, что если у вас есть 3 экземпляра и один отказывает, только 66% из них продлили свои лицензии, поэтому ни один из них не будет отменен. Вы можете настроить renewalPercentThreshold в свойствах сервера, чтобы обеспечить соответствие вашему развертыванию.

eureka:
  server:
    renewalPercentThreshold: 0.49

С этим, если у вас есть 2 экземпляра и 1 неудача, вы все еще в порядке.

ответил Ákos Ratku 15 +03002015-10-15T17:37:43+03:00312015bEurope/MoscowThu, 15 Oct 2015 17:37:43 +0300 2015, 17:37:43
0

Даже старый вопрос, вот мои два цента.

  

Я надеялся, что порог будет постоянно корректироваться и после некоторого   Период времени, порог Эврика будет на новом уровне нормы и   режим самосохранения будет сброшен.

Неверное предположение. Эврика самосохранения никогда не истекает, и пороги не регулируются динамически. Чтобы выйти из этого состояния, вам нужно будет вернуть неработающие виртуальные машины /клиенты (чтобы в общей сложности> 85% клиентов были включены).

Я считаю, что имеет смысл отключить его - взгляните на выводы здесь и аналогичные вопрос здесь .

ответил Fahim Farook 10 SunEurope/Moscow2017-12-10T08:13:57+03:00Europe/Moscow12bEurope/MoscowSun, 10 Dec 2017 08:13:57 +0300 2017, 08:13:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132