spring-cloud mit ribbon / eureka / hystrix using restTemplate kann keine Zeitüberschreitungen für das Verbinden / Lesen festlegen

Ich habe eine Spring-Boot-Anwendung mit Spring-Cloud erstellt und möchte RestTemplate in meiner Client-Anwendung (die auch ein Microservice ist) verwenden, damit ich mockMvc weiterhin für Integrationstests verwenden kann. Ich verwende das standardmäßige Ribbon / Eureka / Hystrix-Client-Setup mit meinem Client-Microservice und meinem Eureka-Client innerhalb des Dienstes, den ich anrufe. Dies funktioniert (nachdem ich herausgefunden habe, dass Service-IDs einen Service-Endpunkt in restTemplate identifizieren). Mein Problem ist, dass ich anscheinend weder das restTemplate-Lese- noch das Verbindungszeitlimit von 300 ms ändern kann.

Details zum Anruf:

`@Configuration
 @EnableAutoConfiguration
 @ComponentScan
 @EnableConfigurationProperties
 @EnableHystrix
 @EnableEurekaClient
public class Application { ... public static void main(String[] args) {} ... }

@Component
class EricComponentToDoHystrix {   // apparently this has to be a component for hystrix to work btw
    @Autowired
    RestTemplate restTemplate;
    ..
    @HystrixCommand(fallbackMethod="defaultRestTemplateCall")
    public void doRestTemplateCall() 
        ResponseEntity<String> result = restTemplate.getForEntity("http://someservice/doSomething", String.class);  // actually make a call
    ..
    }
}`

mit einer application.properties, die enthält:

spring:
  cloud:
    client:
      serviceIds:
        - someservice

someservice:
  ribbon:
    #listOfServers: localhost:7080
    #NIWSServerListClassName: com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList

    # the eureka vipAddress of the target service (Disabled)
    DeploymentContextBasedVipAddresses: someservice

    # Interval to refresh the server list from the source
    ServerListRefreshInterval: 1000

    # Connect timeout used by Apache HttpClient.. apparently not by restTemplate 
    ConnectTimeout: 30000

    # Read timeout used by Apache HttpClient.. apparently not by restTemplate
    ReadTimeout: 30000

eureka:
  client:
    #Region where eureka is deployed -For AWS specify one of the AWS regions, for other datacenters specify a arbitrary string
    #indicating the region.This is normally specified as a -D option (eg) -Deureka.region=us-east-1
    region: default

    #For eureka clients running in eureka server, it needs to connect to servers in other zones
    preferSameZone: false

    us-east-1:
      availabilityZones: default

  instance:
    #Virtual host name by which the clients identifies this service
    virtualHostName: ${spring.application.name}
    appGroupName: ericGroup


# disable Ribbon's cicruit breaker and rely soley on Hystrix.
# this helps to avoid confusion.
# see https://github.com/Netflix/ribbon/issues/15
niws:
  loadbalancer:
    availabilityFilteringRule:
      filterCircuitTripped: false

Weiß jemand, welche Eigenschaften ich brauche, um die Standard-Timeouts von restTemplate zu ändern? Die Dokumentation zu diesem Thema ist sehr leicht und es scheint, dass der Code erst kürzlich sogar die Verwendung von restTemplate gegen die Standardeinstellungen von Ribbon / Eureka-Springboots erlaubt hat. Vielleicht wurde das noch nicht gebaut.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage