Zuul по умолчанию стратегия изоляции Hystrix для SEMAPHORE

Это продолжение моего предыдущего вопроса, где в моей панели инструментов Hystrix постоянно загружается раздел "Пул потоков":- Панель инструментов Hystrix с проблемой турбины

Почему zuul заставляет стратегию изоляции Hystrix быть SEMAPHORE. Я попытался добавить конфигурацию в мой application.yml, но он все равно игнорирует это и использует SEMAPHORE. Есть ли что-то, что мне здесь не хватает. Или как я мог бы изменить его с SEMAPHORE на THREAD.

Application.yml

info:
  component: Zuul Server

eureka:
 client:
   service-url: 
      defaultZone: http://localhost:8761/eureka/

endpoints:
  restart:
    enabled: true
  shutdown:
    enabled: true
  health:
    sensitive: false

server:
  port: 8006

zuul:
  routes:
    UserCards-V1: 
         path: /user/v1/accountholders/*/cards/**
         service-id: usercards-v1
         strip-prefix: false
    UserTransactions-V1_1: 
         path: /user/v1/accountholders/*/transactions
         service-id: usertransactions-v1
         strip-prefix: false
    UserTransactions-V1_2:  
         path: /user/v1/accountholders/*/accounts/*/transactions
         service-id: usertransactions-v1
         strip-prefix: false
    UserAccounts-V1: 
         path: /user/v1/accountholders/*/accounts/**
         service-id: useraccounts-v1
         strip-prefix: false
    UserCardholders-V1: 
         path: /user/v1/accountholders/**
         service-id: usercardholders-v1
         strip-prefix: false 

hystrix: 
  command.default.execution.isolation.strategy: THREAD
  command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
  command.default.execution.timeout.enabled: false
  command.default.fallback.enabled: false
  threadpool.default.coreSize: 20


ribbon:
  ConnectTimeout: 3000
  ReadTimeout: 60000

turbine: 
   clusterNameExpression: zuul

Hystrix.stream

data: {"type":"HystrixCommand","name":"usercardholders-v1RibbonCommand","group":"RibbonCommand","currentTime":1451411772021,"isCircuitBreakerOpen":false,"errorPercentage":0,"errorCount":0,"requestCount":0,"rollingCountBadRequests":0,"rollingCountCollapsedRequests":0,"rollingCountEmit":0,"rollingCountExceptionsThrown":0,"rollingCountFailure":0,"rollingCountEmit":0,"rollingCountFallbackFailure":0,"rollingCountFallbackRejection":0,"rollingCountFallbackSuccess":0,"rollingCountResponsesFromCache":0,"rollingCountSemaphoreRejected":0,"rollingCountShortCircuited":0,"rollingCountSuccess":0,"rollingCountThreadPoolRejected":0,"rollingCountTimeout":0,"currentConcurrentExecutionCount":0,"rollingMaxConcurrentExecutionCount":0,"latencyExecute_mean":0,"latencyExecute":{"0":0,"25":0,"50":0,"75":0,"90":0,"95":0,"99":0,"99.5":0,"100":0},"latencyTotal_mean":0,"latencyTotal":{"0":0,"25":0,"50":0,"75":0,"90":0,"95":0,"99":0,"99.5":0,"100":0},"propertyValue_circuitBreakerRequestVolumeThreshold":20,"propertyValue_circuitBreakerSleepWindowInMilliseconds":5000,"propertyValue_circuitBreakerErrorThresholdPercentage":50,"propertyValue_circuitBreakerForceOpen":false,"propertyValue_circuitBreakerForceClosed":false,"propertyValue_circuitBreakerEnabled":true,"propertyValue_executionIsolationStrategy":"SEMAPHORE","propertyValue_executionIsolationThreadTimeoutInMilliseconds":60000,"propertyValue_executionTimeoutInMilliseconds":60000,"propertyValue_executionIsolationThreadInterruptOnTimeout":true,"propertyValue_executionIsolationThreadPoolKeyOverride":null,"propertyValue_executionIsolationSemaphoreMaxConcurrentRequests":100,"propertyValue_fallbackIsolationSemaphoreMaxConcurrentRequests":10,"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"propertyValue_requestCacheEnabled":true,"propertyValue_requestLogEnabled":true,"reportingHosts":1,"threadPool":"RibbonCommand"}

data: {"type":"HystrixCommand","name":"usercards-v1RibbonCommand","group":"RibbonCommand","currentTime":1451411772522,"isCircuitBreakerOpen":false,"errorPercentage":0,"errorCount":0,"requestCount":1,"rollingCountBadRequests":0,"rollingCountCollapsedRequests":0,"rollingCountEmit":0,"rollingCountExceptionsThrown":0,"rollingCountFailure":0,"rollingCountEmit":0,"rollingCountFallbackFailure":0,"rollingCountFallbackRejection":0,"rollingCountFallbackSuccess":0,"rollingCountResponsesFromCache":0,"rollingCountSemaphoreRejected":0,"rollingCountShortCircuited":0,"rollingCountSuccess":1,"rollingCountThreadPoolRejected":0,"rollingCountTimeout":0,"currentConcurrentExecutionCount":0,"rollingMaxConcurrentExecutionCount":1,"latencyExecute_mean":0,"latencyExecute":{"0":0,"25":0,"50":0,"75":0,"90":0,"95":0,"99":0,"99.5":0,"100":0},"latencyTotal_mean":0,"latencyTotal":{"0":0,"25":0,"50":0,"75":0,"90":0,"95":0,"99":0,"99.5":0,"100":0},"propertyValue_circuitBreakerRequestVolumeThreshold":20,"propertyValue_circuitBreakerSleepWindowInMilliseconds":5000,"propertyValue_circuitBreakerErrorThresholdPercentage":50,"propertyValue_circuitBreakerForceOpen":false,"propertyValue_circuitBreakerForceClosed":false,"propertyValue_circuitBreakerEnabled":true,"propertyValue_executionIsolationStrategy":"SEMAPHORE","propertyValue_executionIsolationThreadTimeoutInMilliseconds":60000,"propertyValue_executionTimeoutInMilliseconds":60000,"propertyValue_executionIsolationThreadInterruptOnTimeout":true,"propertyValue_executionIsolationThreadPoolKeyOverride":null,"propertyValue_executionIsolationSemaphoreMaxConcurrentRequests":100,"propertyValue_fallbackIsolationSemaphoreMaxConcurrentRequests":10,"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"propertyValue_requestCacheEnabled":true,"propertyValue_requestLogEnabled":true,"reportingHosts":1,"threadPool":"RibbonCommand"}

2 ответа

zuul.ribbonIsolationStrategy=THREAD

Вы можете использовать вышеуказанную команду, чтобы заставить ZUUL использовать стратегию THREAD

Почему zuul заставляет стратегию изоляции Hystrix быть SEMAPHORE

См. https://github.com/spring-cloud/spring-cloud-netflix/blob/f3deb04521c8c0a0b6d9923b0b37d8673cb7fa0b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/support/AbstractRibbonCommand.java#L85.

// по умолчанию мы хотим использовать семафор-изоляцию
// 2 другие команды, которые уже изолированы от потока

Другие вопросы по тегам