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

Spring Cloud网关,带DisdisveryClient和静态路由

戚翰飞
2023-03-14

我目前正在用spring cloud gateway替换网飞Zuul的api gateway。该设置对大多数路线使用发现客户端(eureka ),但是我们还有一个solr实例正在运行,它需要手动定义路线(因为solr不支持Eureka)

使用以下配置,使用到在本地主机上运行的solr的静态路由可以很好地工作:

  routes:
    - id: solr
      predicates:
        - Path=/solr/**
      uri: http://localhost:10983
      filters:
        - RewriteLocationResponseHeader=AS_IN_REQUEST, Location,

但是,我想为这条路由使用负载平衡的uri,因为我们有多个solr实例。查看留档,我发现实现它的方法是定义一个返回ServiceInstanceListSupply ier的Bean。我已经嵌入了以下函数:

@Bean
ServiceInstanceListSupplier serviceInstanceListSupplier() {
    List<String> servers = Arrays.asList(microserviceGatewayConfig.getServers().split(","));
    return new SolrServiceInstanceListSupplier("solrhosts", servers);
}

然而,这似乎覆盖了从Eureka定义的ServiceInstance,这意味着只使用手动服务。。。

有人知道是否可以将手动定义的serviceinstances与eureka生成的serviceinstances结合起来吗?

共有1个答案

凌征
2023-03-14

创建返回ServiceInstanceListSupplier的Bean的方法似乎没有任何作用……不过,我已经找到了在应用程序中实现这一点的方法。yml,通过添加以下配置:

spring:
  cloud:
    discovery:
      client:
        simple:
          instances:
            solr-cluster:
              - instanceId: cluster1
                serviceId: solr-cluster
                host: soa03i-t.usrv.ubergenkom.no
                port: 10983
              - instanceId: cluster2
                serviceId: solr-cluster
                host: soa04i-t.usrv.ubergenkom.no
                port: 10983

这可以与服务发现自动生成的路由相结合(例如Eureka)

 类似资料:
  • 主要内容:静态网页,动态网页本节我们了解一下静态网页和动态网页的相关概念。如果您熟悉前端语言的话,那么您可以快速地了解本节知识。 当我们在编写一个爬虫程序前,首先要明确待爬取的页面是静态的,还是动态的,只有确定了页面类型,才方便后续对网页进行分析和程序编写。对于不同的网页类型,编写爬虫程序时所使用的方法也不尽相同。 静态网页 静态网页是标准的 HTML 文件,通过 GET 请求方法可以直接获取,文件的扩展名是 、 等,网面中

  • Spring Cloud Gateway真的很新--但它“看起来”很容易。有一个问题我很纠结。我的要求是给路径加上前缀,检查一个头变量,查找基于该变量的URI,然后顺着它前进。 问题是uri始终是下面的default_implemension,即使我在idresolvinggatewayfilter中更改了这个值。我怎样才能完成这件事呢?可以随时添加新的ID,这就是“动态”部分。因此,在网关过滤器

  • 本文向大家介绍SpringCloud网关Gateway架构解析,包括了SpringCloud网关Gateway架构解析的使用技巧和注意事项,需要的朋友参考一下 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 网关来做,这样既提高业务灵活性又不缺安全性,典型的架构图如图所示: 安全 ,只有网关系

  • 本文向大家介绍静态路由和动态路由之间的区别,包括了静态路由和动态路由之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态路由 遵循用户定义的路由的静态路由或非自适应路由,并且直到网络管理员更改路由表后,路由表才会更改。静态路由使用简单的路由算法,并且比动态路由提供更高的安全性。 动态路由 顾名思义,动态路由或自适应路由会在网络发生任何更改或网络拓扑发生更改时更改路由表。在网络更改期间,动态路由

  • 主要内容:动态网页静态或平面的网页是指一个网页,其中所有的信息和材料都存储在网页文件中。 静态网页向所有用户显示不太经常改变的信息和数据。 在互联网技术中,超文本标记语言(HTML)是人们开始创建静态网页的第一语言或渠道。 HTML提供了文本,段落创建和换行符的风格。 但HTML的最重要的功能和特点是链接创建选项。 静态网页对于他们的材料和内容很有用,而这些内容很少需要修改或更新。 静态网站的优势 快速开发 低价开

  • 我试图将使用工作的网关迁移到Spring Cloud网关,但遇到了请求路由问题。 下面是Spring Cloud Gateway配置的一个片段,我试图在其中配置一个等效的路由: 我使用Spring Cloud Eureka作为我的Discovery服务器(在一个单独的微服务中),并且我目前没有任何配置,如配置DiscoveryClient路由的谓词和过滤器中所述 如果我向发出请求,我将收到一个40