конфигурация весеннего облака стала моей единственной точкой отказа

Вкратце, могу ли я запустить кластер серверов Spring Cloud Config для обеспечения высокой доступности? Если да, то как?

Я пытаюсь использовать Spring Cloud Config в качестве моей центральной службы конфигурации. Моя проблема в том, что каждый клиент может указать только один сервер для получения конфигурации. Если этот сервер не работает, все должно ждать его восстановления.

Некоторые другие фреймворки позволяют запускать несколько серверов и перечислять их на стороне клиента. Есть ли в Spring Cloud Config такая функция?

Если это невозможно, я рассматриваю возможность запуска нескольких экземпляров и размещения их за nginx. Может ли это вызвать какой-то побочный эффект?

Любые предложения будут ценны.


person L. Wei    schedule 01.07.2016    source источник
comment
Как вы решили эту проблему? какой подход вы использовали, наконец, чтобы иметь отказоустойчивый сервер конфигурации   -  person vashishth    schedule 07.11.2017


Ответы (1)


Некоторые другие фреймворки позволяют запускать несколько серверов и перечислять их на стороне клиента. Есть ли в Spring Cloud Config такая функция?

Вам следует использовать Spring Cloud Netflix Eureka включить Eureka Server в качестве службы обнаружения и включить Eureka Клиент в сервисах (микросервис). вы можете зарегистрировать сервер конфигурации в службе обнаружения.

Служба обнаружения Spring Cloud Config

из документа:

Если вы используете реализацию DiscoveryClient, такую ​​как Spring Cloud Netflix и Eureka Service Discovery или Spring Cloud Consul, вы можете зарегистрировать сервер конфигурации в службе обнаружения. Однако в стандартном режиме «Config First» клиенты не могут воспользоваться преимуществами регистрации.

Если вы предпочитаете использовать DiscoveryClient для поиска сервера конфигурации, вы можете сделать это, установив spring.cloud.config.discovery.enabled=true (по умолчанию — false). Конечным результатом этого является то, что всем клиентским приложениям требуется файл bootstrap.yml (или переменная среды) с соответствующей конфигурацией обнаружения. Например, для Spring Cloud Netflix вам необходимо определить адрес сервера Eureka (например, в eureka.client.serviceUrl.defaultZone). Платой за использование этой опции является дополнительная сетевая поездка туда и обратно при запуске, чтобы найти регистрацию службы. Преимущество заключается в том, что пока служба обнаружения является фиксированной точкой, сервер конфигурации может изменять свои координаты. Идентификатор службы по умолчанию — configserver, но вы можете изменить его на клиенте, установив spring.cloud.config.discovery.serviceId (и на сервере обычным способом для службы, например, установив spring.application.name) .

например bootstrap.yml в службах (клиентах):

spring:
  application:
    name: example-service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: configuration-server
# Eureka client
eureka:
  client:
    prefer-same-zone-eureka: true
    region: region1
    service-url:
      zone1: http://discovery-server-01:8761/eureka/,http://discovery-server-02:8761/eureka/
    availability-zones:
      region1: zone1
person Masht Metti    schedule 17.03.2019