Можно ли включить приложение Spring Cloud Gateway в качестве сервера Cloud Config? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь включить приложение Spring Cloud Gateway, чтобы оно автоматически обновляло свой конфигурационный маршрут yml на лету.Я смог настроить сервер Cloud Config для размещения маршрута YAML и позволил Spring Cloud Gateway автоматически обновлять свою конфигурацию при использовании @Scheduled contextRefresher.refresh().Однако для этого требуются два запущенных приложения, и мы хотим попытаться свести к минимуму количество дополнительных серверов, необходимых для поддержки этого требования.

В документации Spring Cloud Config Server предлагается, чтобы любое загрузочное приложение можно было встроить с помощью сервера конфигурации черезаннотация @EnableConfigServer: https://cloud.spring.io/spring-cloud-static/spring-cloud.html#_spring_cloud_config_server

Однако при попытке ввести модуль spring-cloud-config-server в build.gradle моего шлюза я сталкиваюсь со следующей ошибкой при запуске:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.http.codec.ServerCodecConfigurer' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Из обсуждения здесь (https://github.com/spring-cloud/spring-cloud-gateway/issues/319) кажется, что вышеупомянутая проблема возникает из-за того, что spring-boot-starter-web несовместима с Gateway; Gateway - это приложение Netty и spring-boot-starter-web использует tomcat / servlets. При попытке исключить spring-boot-starter-web из модуля cloud-config-server приложение снова завершается с ошибкой w /:

onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.cloud.config.server.config.ConfigServerAutoConfiguration]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.class] cannot be opened because it does not exist

Это тот случай, когдаприложение Spring Cloud Gateway не может быть включено в качестве сервера CloudConfig? Или я что-то упустил. FWIW мой sprincCloudVersion Finchley.SR1

1 Ответ

0 голосов
/ 27 сентября 2018

Они не могут.Сервер конфигурации основан на Spring MVC (сервлеты), шлюз на основе Spring Webflux и Netty.Они несовместимы и не могут быть запущены вместе.

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