gpt4 book ai didi

java - Zuul动态路由使用前置过滤器和eureka

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:27 26 4
gpt4 key购买 nike

我正在创建一个包含 3 个(服务 A、服务 B 和服务 C)微服务的示例。所有 3 项服务以及网关服务 ( zuul ) 都在 Eureka 注册。我的用例是:

1) 所有的请求都会通过网关服务进入系统——工作

2) 对于针对服务 C 的每个请求,网关服务应首先调用服务 A 执行特定操作。根据服务 A 的肯定响应,请求应该转发给服务 B。一旦我们从服务 A 和服务 B 都得到肯定响应,请求最终应该转发给服务 C。

我想使用 zuul 路由过滤器和 eureka 动态实现上述用例。我调查了PreDecoration过滤并尝试以下内容。我的网关服务运行在 8080 端口

zuul:
routes:
all:
path: /**
url: http://localhost:8761


public class CustomFilter extends ZuulFilter{

@Override
public boolean shouldFilter() {
return true;
}

@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.set("serviceId", “service-a”);
ctx.setRouteHost(new URL("http://localhost:8080”));

return null;
}

@Override
public String filterType() {
return "pre";
}

@Override
public int filterOrder() {
return 1;
}

}

最佳答案

根据 @Grinish 的建议看起来 Zuul 不支持我打算做的事情。我最终使用了 Feign Client从 Zuul 预过滤器内部调用服务 A 和 B。

关于java - Zuul动态路由使用前置过滤器和eureka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39409361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com