我们当前的项目需求是将一些请求路由到第三方外部api服务器。为此,我们使用的是基于spring祖尔的路由器服务。
zuul:
routes
test:
path: /test/**
serviceId: test
url: http://my.api.server.com
test2:
path: /test2/**
serviceId: test2
url: http://my.api.server.com // but through an external proxy
现在的要求是,对于某些endpoint,到外部api服务器的请求已经通过不属于我们的外部代理服务器路由,
如何通过卷曲完成此操作:
curl <external_api_server>/api/v1/user -k \
-x tntqyhnhjym.sandbox.verygoodproxy.com:8080 \
-H "Content-type: application/json" \
-d '{"card_number": "tok_sandbox_t8VSoovCuHA779eJGZhKvg", ... }'
-x
通过给定的代理重定向请求。如何通过spring-祖尔服务器做到这一点?
我有一条线索?https://github.com/spring-cloud/spring-cloud-netflix/issues/2320。不干净,因为我需要扩展zuul
的simplehostroutingfilter
您可以设置一个反向代理--它被配置为通过代理。您的反向代理将以使用外部代理的参数(例如,在Java或nodejs中)启动。这个反向代理将是一个不同的进程,它将通过所需的代理传递所有请求。
您可以通过设置第二个zuul代理应用程序或通过nodejs反向代理(express或node-http-proxy)来实现。
因此,如果您使用zuul,您将使用以下内容制作第二个应用程序:
test2:
path: /proxied-test2/**
serviceId: test2
url: http://my.api.server.com
然后,您将使用代理的参数在同一台服务器上并在特定端口(例如9200
)上启动该服务器。
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888
在您的原始应用程序中,您将把您的路由替换为下面的路由。
zuul:
routes
test:
path: /test/**
serviceId: test
url: http://my.api.server.com
test2:
path: /test2/**
serviceId: test2
url: http://localhost:9200/proxied-test2/
您可以设置一个代理服务器,然后设置一些例外情况和规则,说明哪些请求应该通过代理路由,哪些请求应该在没有代理的情况下工作。
第二步是配置您的应用程序以使用步骤1中指定的本地代理服务器。为此,您可以使用以下命令行参数:
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888
我在过去为代理服务器配置了排除列表,但从未配置/编写包含列表的脚本。在您的情况下,使用include列表更有意义,这样我就可以测试可脚本/可编程的代理服务器,例如:
Zuul Server是一个网关应用程序,可处理所有请求并执行微服务应用程序的动态路由。 Zuul服务器也称为边缘服务器。 例如, /api/user映射到用户服务,/ api/products映射到产品服务,Zuul Server将请求动态路由到相应的后端应用程序。 在本章中,我们将详细介绍如何在Spring Boot中创建Zuul Server应用程序。 创建Zuul服务器应用程序 Zuul
我有两台机器(具有相同的应用程序)注册到eureka服务器。所有对这些服务的请求都通过zuul代理。 我对后端服务的application.properties是: 我的申请。我的zuul代理的属性是: 我有两个问题: > http://localhost:9090/api/by-service/customer/1 http://localhost:9090/api/core/customer/
我试图通过Spring云NetflixZuul路由现有服务。 我有一个现有的服务,网址如下:, http://localhost:3080/query-service/getquery/1 开箱即用的zuul I可以路由到如下服务:localhost:9000/queryservice id/queryservice/getquery/1,当服务在服务注册中心注册时,“queryservice i
路由在微服务体系结构的一个组成部分。例如,/可以映射到您的Web应用程序,/api/users映射到用户服务,并将/api/shop映射到商店服务。Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。 Netflix使用Zuul进行以下操作: 认证 洞察 压力测试 金丝雀测试 动态路由 服务迁移 负载脱落 安全 静态响应处理 主动/主动流量管理 Zuul的规则引擎允许基本上写任何JV
我正在研究spring MVC,并使用Apache camel来集成外部服务。我想使用Apache Camel route进行Webservice调用。 就像我的本地REST服务(http://localhostsmiliex.xx:8080/users)从外部REST服务获取数据(http://xxx:000/users)并希望通过路由获取外部数据。 哪个Apache组件适合Jetty或prod
null 例如,将返回JSON格式的用户。 用户应用程序也有一个HTTPendpoint,它应该将请求转发给其他应用程序--让我们将其中一个称为作业应用程序。 此endpoint为。例如, 请注意,初始请求到达用户应用程序,然后它被转发到作业应用程序。 我把我思考的一些方法。也许你过去做过类似的事情,所以你可以分享你这样做的经验。甚至改进我的一种方法。 我将使用映射在用户应用程序中创建 null