当前位置: 首页 > 知识库问答 >
问题:

通过ZUUL路由现有服务,无需添加路由规则

林曦之
2023-03-14

我试图通过Spring云NetflixZuul路由现有服务。

我有一个现有的服务,网址如下:,

http://localhost:3080/query-service/getquery/1

开箱即用的zuul I可以路由到如下服务:localhost:9000/queryservice id/queryservice/getquery/1,当服务在服务html" target="_blank">注册中心注册时,“queryservice id”作为服务的服务id。祖尔港是9000。

通过ZUUL访问服务时,我不想更改上下文路径和服务路径信息。

对于ZUUL,我想访问以下服务,http://localhost:9000/query-服务/getquery/1

我确实想用“serviceId”作为前缀。这是因为我不想影响服务的任何现有客户端。只有主机和端口发生变化,而没有serviceId。

我能够完成如下与ZUUL配置,

zuul:
  routes:
    query-service:
      path: /query-service/**
      serviceId: query-service
      stripPrefix: false

通过以上配置,我只能使用zuul主机和端口,其他特定于服务的信息与以前一样。似乎stripPrefix有助于在没有serviceId的情况下进行路由。

但是,我有很多服务,也会增加更多的服务。

对于每一个这样的服务,我不想在ZUUL配置中添加这样的规则,这将意味着重建和回收ZUUL服务。

我觉得应该有一种更简单、更好的方法来实现这一点,而不需要付出很大的努力,因为我想要做的改变对所有服务来说都是共同的

有没有办法让我想通过ZUUL路由的所有服务都可以使用这个更改。

谢谢

共有1个答案

鲁成天
2023-03-14

经Spring Cloud Netflix团队检查,这是推荐的方法。https://github.com/spring-cloud/spring-cloud-netflix/issues/1549

 类似资料:
  • 我们当前的项目需求是将一些请求路由到第三方外部api服务器。为此,我们使用的是基于spring祖尔的路由器服务。 现在的要求是,对于某些endpoint,到外部api服务器的请求已经通过不属于我们的外部代理服务器路由, 如何通过卷曲完成此操作: 通过给定的代理重定向请求。如何通过spring-祖尔服务器做到这一点? 我有一条线索?https://github.com/spring-cloud/sp

  • 路由服务 首先,要理解什么是 router,router是提供跨 subnet 的互联功能的。比如用户的内部网络中主机想要访问外部互联网的地址,就需要router来转发(因此,所有跟外部网络的流量都必须经过router)。目前router的实现是通过iptables进行的。 同样的,router服务也运行在自己的名字空间中,可以通过如下命令查看: $ sudo ip net exec qroute

  • 我有一个相当简单的Spring CloudNetflix设置。我们使用Zuul作为反向代理,Eureka用于服务发现和注册。我们有我们正在慢慢窒息的遗留服务。我们有许多简单的服务,其endpoint配置如下: 因此,现在当每个服务都在eureka注册并随后向Zuul添加路由时,zuul终结点如下所示: 我想阻止Zuul将前缀从eureka服务的路由URI中剥离,以便我的Zuulendpoint如下

  • { "cluster": "...", "route_config_name": "...", "refresh_delay_ms": "..." } cluster (required, string) 承载路由发现服务的上游群集的名称。群集必须实现和运行RDS HTTP API的REST服务。注:这是在群集管理器配置中定义的群集的名称,而不是群集的完整定义,如SDS和CDS的情况

  • 路由发现服务(RDS)的API在Envoy里面是一个可选API,用于动态获取路由配置。路由配置包括HTTP头部修改,虚拟主机以及每个虚拟主机中包含的单个路由规则。每个HTTP连接管理器都可以通过API独立地获取自己的路由配置。 v1 API 参考 v2 API 参考 统计 RDS的统计树以 http.<stat_prefix>.rds.<route_config_name>..为根,route_c