我试图在新的Spring Boot App中使用WebFlux响应类型.我在https://start.spring.io上使用了initializr 并选择了2.0.0-SNAPSHOT版本.我添加了Web反应依赖,我所做的一切都很棒.这是一个非常可靠的POC,目标是如何利用这些类型来实现API的现代化,为此,我们计划慢慢替换阻塞和/或同步过程的每个部分,并用非阻塞的替代实现替换它.
我遇到的问题是,当我试图将我的POC演变成更类似于我们在生产中的服务时,很多东西似乎都没有起作用.现在我明白webflux还不是GA,而且我不应该期待所有其他春季项目的完全反应支持.但我记得当webflux仍被称为web-reactive,你可以在underow/jetty/netty/tomcat/etc上运行但是现在我正在使用webflux启动器,一切都默认为netty,我没有看到文档调用如何将其更改为我们其他服务当前使用的嵌入式tomcat.
是否仍然可以将spring-boot-starter-webflux与其他应用程序容器一起使用,或者我现在是否需要手动引导webflux以使用除netty之外的其他东西?
我有一个相当简单的Spring Cloud Netflix设置.我们使用Zuul作为反向代理,使用Eureka进行服务发现和注册.我们有遗留服务,我们正在慢慢窒息.我们有许多简单的服务,其端点配置如下:
{host}:{port}/{service-name}/**
Run Code Online (Sandbox Code Playgroud)
所以现在当每个服务都在eureka注册,并且随后有一条添加到Zuul的路由时,zuul端点如下所示:
{zuul-host}:{zuul-port}/{service-name}/{service-name}/**
Run Code Online (Sandbox Code Playgroud)
我想阻止Zuul从eureka服务的路由URI中删除前缀,以便我的zuul端点看起来像这样:
{zuul-host}:{zuul-port}/{service-name}/**
Run Code Online (Sandbox Code Playgroud)
并转发到:
{zuul-host}:{zuul-port}/{service-name}/**
Run Code Online (Sandbox Code Playgroud)
我希望这样做,以便我不必为每个服务添加配置.
我本以为zuul.strip-prefix可以做到这一点,但事实并非如此.
当前Zuul application.yml:
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/
Run Code Online (Sandbox Code Playgroud)
有人建议我如何以这种方式配置zuul?
routing spring-boot netflix-eureka netflix-zuul spring-cloud-netflix