0

Setup:

I'm using a Zuul reverse proxy to send requests to two different backend services. I do not require any load balancing for this application. I have only one filter configured, which isn't involved in this process and confirmed not being called. The Zuul listOfServers for each service is dynamically populated during runtime using the following code from the server:

clientFactory.getClientConfig(SERVICE_ID).set(CommonClientConfigKey.ListOfServers, "https://" + host + ":" + port);`

The relevant application.yaml setup is as follows:

zuul:
  ignored-services: '*'
  add-proxy-headers: false
  sensitive-headers:

  # Use more descriptive name for the Zuul servlet bypass
  servlet-path: '/large-file-uploads'

  ribbon:
    eager-load:
      enabled: true

  routes:
    serviceone:
      path: /service_one/**
      serviceId: 'service_one'
    servicetwo:
      path: /service_two/**
      serviceId: 'service_two'

ribbon:
  eureka:
    enabled: false

Problem:

After listOfServers should be set (via code above), the first request to a service returns a status 500 and the server prints a Zuul forwarding error (can be found here). Any subsequent calls go through as expected. Also, it seems to happen only after the backend service is restarted, though it's not a problem with the service (confirmed via Postman tests).

Any help would be greatly appreciated. Thanks!

1 Answers1

0

Turned out to be a read timeout problem, see ryanjbaxter's answer here: https://github.com/spring-cloud/spring-cloud-netflix/issues/3021