请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

师兄,zuulProperties动态路由不起作用

我使用的是2.1.5.RELEASE和Greenwich.SR1版本,前面讲的bus刷新,可以通过post手动刷新配置,但是到这里,修改了git网关配置,就不行,代码如下:
pom.xml配置

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>api-gateway</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>api-gateway</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

本地配置

server:
  port: 9000
spring:
  application:
    name: api-gateway
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config-server
      profile: dev
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8762/eureka/
  instance:
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
    prefer-ip-address: true

启动类

@SpringBootApplication
@EnableZuulProxy
public class ApiGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class, args);
    }

    /**
     * 动态路由
     * @return
     */
    @ConfigurationProperties("zuul")
    @RefreshScope
    public ZuulProperties zuulProperties() {
        return new ZuulProperties();
    }
}

git的网关配置

zuul:
  #全部服务忽略敏感头(全部服务都可以传递cookie)
  sensitive-headers: 
  routes:
  # /myProduct/product/list -> /product/product/list
    aaaaaa:
      path: /oneProduct/**
      serviceId: product
      sensitiveHeaders:  #显示敏感头信息(cookie,配置空即可)
  #简洁写法
#    product: /myProduct/**
  #排除某些路由
  ignored-patterns:
    - /**/product/listForOrder 
#暴露配置,
#通过:http://localhost:9000/actuator/routes可以查看所有匹配的路由
#低版本:http://localhost:9000/applicatio/routes查看
management:
  endpoints:
    web:
      exposure:
        include: "*"  
ribbon:
  ReadTimeout: 5000
  SocketTimeout: 5000

正在回答

2回答

好的,采纳为正确答案吧,表示close这个问题了。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_聖曖格_0 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-20 21:40:41
  • 提问者 qq_聖曖格_0 #2
    另外有个问题,最近公司使用的是consul注册中心,其他语言也可以注册进来,java部分有配置中心config,其他的client端也可以使用config的服务名拉取配置,但是无法通过网关zuul却访问接口,是什么原因呢?
    回复 有任何疑惑可以回复我~ 2019-05-20 21:47:43
  • 廖师兄 回复 提问者 qq_聖曖格_0 #3
    重新开个问题
    回复 有任何疑惑可以回复我~ 2019-05-22 22:48:33
提问者 qq_聖曖格_0 2019-05-18 20:09:49

不好意思,我找到原因了,没加Bus依赖和配置mq

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信