问题标签 [netflix-zuul]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1118 浏览

spring-cloud - 使用 Zuul 或 Spring Cloud 时的 SSL 终止

目前,我们的应用程序使用硬件负载平衡器进行 SSL 终止。我们开始实施一种新架构,将一个大应用程序分解为一组较小的应用程序,可能使用 Netflix 和 Spring Cloud 工具。

当我们查看 Zuul 时,运营团队提出的一个问题是,当有大量连接(和 Zuul 服务)时,人们通常在哪里终止 SSL 连接?由于在单个应用程序服务器上终止 SSL 的 CPU 成本,我们几年前在负载均衡器中做过,但是如果我们在多台机器上部署一组服务,这是否消除了这种担忧?

那么人们在使用 Zuul 时在哪里终止 SSL 呢?

谢谢,

克里斯

0 投票
1 回答
3778 浏览

spring-cloud - Spring Cloud:使用 Zuul 进行 Canary 部署

我开始使用 Eureka 和 Zuul 使用 Spring Cloud,并且对构建蓝/绿和 Canary 部署有一些疑问。到目前为止,我已经完成了基础工作,并让 Eureka、Zuul 和配置服务器按预期工作。我想要完成的是设置一个有两个版本的服务,比如 1.0 和 1.1。对于特定用户的子集,我想将他们路由到 1.1 版本,而其他所有人都应该转到 1.0 版本。

Zuul 过滤器 API 对文档的了解有点少,我正在努力理解一些概念,所以我想在这里问几个问题。我还运行了一些基本过滤器,除了获取委托人的身份和他们请求的服务之外,它们并没有做很多事情。我碰壁的地方是了解如何向 Eureka 和 Zuul 公开同一服务的两个不同版本。我很好奇的几件事:

  • 在文档、帖子和其他堆栈溢出之间,术语“服务”和“集群”似乎可以互换使用。这个对吗?
  • 话虽如此,如果我有一个名为的服务/simpleservice,我是否会公开两个不同的 serviceID(即simpleservicesimpleservice-1.1)?如果我这样做,当目标用户之一请求/simpleservice时,我会让 Zuul 将它们发送到/simpleservice-1.1
  • 或者,您是否将另一个节点添加到现有服务 ID 并为每个节点添加额外的元数据,以便 Zuul 区分 1.0 和 1.1 版本?
  • 正确答案是“以上所有”吗?:)
0 投票
1 回答
702 浏览

rest - 调用 restTemplate 交换或执行时出现前提条件错误

我正在尝试调用对休息服务的调用。其余客户端和其余服务都在我的机器上以不同的端口运行。执行和交换方法都抛出空指针异常。我的 rest 客户端是一个 Netflix Zuul 过滤器(它自己注册到 Netflix Eureka Discovery 代理)。我希望这没有什么不同,但是堆栈跟踪的结尾似乎提到了“功能区”库。所以我猜这个错误可能与它有关。

我的 Rest Client 中只有@AutowiredRestTemplate 对象。我没有使用@LoadBalanced注释。

当我使用“Eureka 服务”ID 而不是 localhost:端口号时,调用成功执行。什么可能是根本情况?

异常堆栈跟踪:

0 投票
3 回答
13086 浏览

url-rewriting - 如何在 Zuul Proxy 中进行 URL 重写?

我的 Zuul 过滤器的请求之一是 URI /hello/World我想重定向到/myapp/test。这个 /myapp/test 是在 Eureka 中注册的服务。

当我尝试上述配置时,传入的 URI 后缀为配置的 URL,如http://localhost:1234/myapp/test/World。我遇到的几个链接似乎表明 Zuul 中还没有 URL 重写功能。

有没有其他方法可以在 Zuul 层完成?

注意:此时,我无法在 Web 服务器或任何其他层中执行此反向代理,因为我的 Zuul 过滤器是直接接收请求的过滤器。

0 投票
1 回答
3711 浏览

netflix-zuul - 转发期间 Zuul SendErrorFilter 出错

当我的 Zuul 过滤器无法路由到配置的 URL 时,'RibbonRoutingFilter' 类会抛出一个 ZuulException 说“转发错误”,并且控件会转到“SendErrorFilter”类。

现在,当 SendErrorFilter 类尝试进行转发时,在此转发调用期间会发生另一个异常。

在此前转呼叫期间发生的异常是

最后,当控件来到我的自定义 ZuulErrorFilter 时,我没有得到原始异常。相反,我得到的异常对象是在转发期间发生的异常对象。

更新: 我发现可以将 errorPath 属性配置为指向错误处理服务。如果未配置,Zuul 默认会查找名为 /error 的服务并尝试分派到该服务。由于我们没有为 /error 提供任何服务,因此 dispatcher.forward() 正在抛出错误。

问题 我们如何跳过这个转发到错误处理服务?我们有一个 ErrorFilter 来记录错误。我们不希望有错误处理服务。

0 投票
3 回答
5085 浏览

spring - Websocket over Spring Netflix Zuul

With respect to this issue: https://github.com/spring-cloud/spring-cloud-netflix/issues/163 is there a reasonable way to setup Spring Cloud Zuul reverse proxy to be used with Websockets?

I was able to setup the proxy to websocket endpoint and sucessfully connect to it from the client, but due to very short connection timeouts the connections constantly gets closed. What I care the most at this point is the Zuul service autodiscovery. Does it make any sense to try to use similar workaround as for the file downloads described in the reference, although with larger connection timeouts?

Are the are any reasonable alternatives? Like writing my own ZuulFilter?

0 投票
1 回答
2485 浏览

netflix-zuul - Netflix Zuul 版本 1 和版本 2 有什么区别

有人可以给我一些见解 Netflix Zuul 1.xx 版和新版 2.xx 有什么区别?

似乎两条产品线都得到了维护。版本 2 使用 Guice 进行 DI,Filter 的实现有一些不同。??

0 投票
1 回答
522 浏览

java - 从 Cassandra 中提取的 Netflix Zuul 过滤器无法正常工作

我一直在将 Zuul 与其他 Netflix OSS 软件(如 Eureka、Hystrix 等)结合使用。起初,我能够创建自己的过滤器并使其在文件系统中工作。然后,我想使用 ZuulFilterDAOCassandra API 来从 Cassandra 数据库中提取过滤器。问题是我无法让它工作。

我已经将我使用的 Java 过滤器从 FileSystem 转换为 Groovy 过滤器,并使用该方法将其添加到 Cassandra ZuulFilterDAO.addFilter(),并使用 . 激活它ZuulFilterDAO.setFilterActive()。之后,我开始ZuulFilterPoller从数据库中提取过滤器,如果它已经有的话. 对于数据库表模型,我通过查看FilterInfo对象及其属性以及ZuulFilterDAOCassandra.addFilter()方法来假设它。

这是更完整的代码部分:

在 Zuul 控制台中,我还得到以下信息:

然后我可以在我的项目根目录编辑 testFilter.groovy,其中包含我在dao.addFilter()方法中提到的代码。我知道代码正在运行,因为它在从 FS 中提取过滤器时起作用。而且,在添加过滤器时,会验证由FilterVerifier.

当我将 http 请求发送到我的应用程序时,Zuul 不再过滤它们。我错过了什么吗?

0 投票
2 回答
7646 浏览

apache - 通过 Zuul 和 Apache 访问资源服务器中的远程 IP 地址

为了进行安全检查,我需要访问资源服务中用户的远程 IP 地址。这个资源服务是一个简单的最近的 Spring Boot 应用程序,它在我的 Eureka 服务器上注册了自己:

在我的 Eureka 服务器上注册的所有服务都通过我基于 Angel.SR3 的 Zuul 路由代理服务器动态路由,starter-zuul并且starter-eureka

Zuul 路由代理服务器还为下一步配置了一个 AJP 连接器:

对动态路由 zuul 代理的所有请求都通过 Apache 自己代理,以在标准 443 端口上提供 HTTPS:

有了这一切,资源服务就可用了,但不幸的是,我从 Spring Security 获得的 remoteAddress 是 Zuul 代理/Apache 服务器的地址,而不是远程客户端 IP 地址。

过去,我使用了一个org.springframework.security.authentication.AuthenticationDetailsSource优先于X-Forwarded-For正常值的标头值remoteAddress来获取正确的 IP 地址,但是当通过两个代理(Apache + Zuul)时,我无法弄清楚如何将正确的远程 IP 地址传递给我的资源服务.

谁能帮我访问这两个代理背后的正确远程 IP 地址,或者建议一种替代方法来让它工作?

0 投票
1 回答
4000 浏览

spring-boot - Spring Boot + 云 | Zuul 代理 | 附加 URL/重写

我正在使用 Spring Boot + Cloud | Zuul 代理(org.springframework.cloud:spring-cloud-starter-zuul:1.0.0.RELEASE)。我有以下配置。

我希望访问 URL 服务为http://localhost:8765/api/v1/service,如上述配置中所做的那样(参考:https ://github.com/joshlong/microservices-lab/blob/master/api-网关/网关/src/main/resources/application.yml)。

但这不起作用,URL http://localhost:8765/service有效。

有没有办法实现这一点,因为我不希望各个服务具有 /api/v1 上下文。