SpringCloud 분포 식 마이크로 서비스 b2b2c - hystrix 파라미터 상세 설명 (10)

5560 단어 springcloudspring
우 리 는 Hstrix + feign + ribbon 에 대해 논 의 했 습 니 다. 그러나 많은 사람들 이 Hstrix 에 스 레 드 격 리, 신 호 량 격 리 등 각종 매개 변수 설정 이 있다 는 것 을 알 고 있 을 것 입 니 다. 이 몇 가지 에 Hstrix 의 매개 변수, br / > 1, Hstrix 매개 변수 사용 방법 은 주석 @ Hystrix Command 의 commandProperties 를 통 해 설정 합 니 다. 다음은 Hstrix 명령 의 시간 초과 명령 집행 시간 입 니 다.1000 ms 와 실행 을 위해 시간 초과 알 아 보기 springcloud 구 조 를 사용 하지 않 습 니 다.
@RestController
public class MovieController {
  @Autowired
  private RestTemplate restTemplate;

  @GetMapping("/movie/{id}")
  @HystrixCommand(commandProperties = {
          @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000"),
          @HystrixProperty(name = "execution.timeout.enabled", value = "false")},fallbackMethod = "findByIdFallback")
  public User findById(@PathVariable Long id) {
    return this.restTemplate.getForObject("http://microservice-provider-user/simple/" + id, User.class);
  }

  /**
   * fallback  
   * @param id
   * @return
     */
  public User findByIdFallback(Long id) {
    User user = new User();
    user.setId(5L);
    return user;
  }
}

2. hystrix 매개 변 수 는 다음 과 같다.
hystrix.command.default hystrix.threadpool.default  default   CommandKey

Command Properties
Execution        :
hystrix.command.default.execution.isolation.strategy     ,   Thread,   Thread|Semaphore

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds         ,  1000ms

hystrix.command.default.execution.timeout.enabled         ,    true
hystrix.command.default.execution.isolation.thread.interruptOnTimeout          ,  true
hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests        ,  10,      ExecutionIsolationStrategy.SEMAPHORE      。           ,      。     semaphore size      thread size  ,   semaphore                  (ms  ),       thread。
semaphore       (tomcat)         。
Fallback     
         Hystrix THREAD SEMAPHORE  

hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests            ,             fallback     。  10
hystrix.command.default.fallback.enabled             ,       hystrixCommand.getFallback() 。  true
Circuit Breaker     
hystrix.command.default.circuitBreaker.enabled     circuit    ,       request  。  true
hystrix.command.default.circuitBreaker.requestVolumeThreshold   rolling window       。    20,     rolling window    (   1 rolling window 10 )  19   ,  19      ,     circuit break。  20
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds         ,     5000 ,    circuit break  5000       request,   5000       circuit。  5000
hystrix.command.default.circuitBreaker.errorThresholdPercentage      ,     >=  ,circuit    ,         fallback。  50
hystrix.command.default.circuitBreaker.forceOpen        ,        ,      request,  false
hystrix.command.default.circuitBreaker.forceClosed                 ,circuit        circuitBreaker.errorThresholdPercentage
Metrics    
hystrix.command.default.metrics.rollingStats.timeInMilliseconds            ,   ,circuit break       1 rolling window      。 rolling window   10000  , rolling window    n buckets,  bucket  success,failure,timeout,rejection        。  10000
hystrix.command.default.metrics.rollingStats.numBuckets     rolling window      , numBuckets=10,rolling window=10000,    bucket    1 。    rolling window % numberBuckets == 0。  10
hystrix.command.default.metrics.rollingPercentile.enabled      enable        ,  true
hystrix.command.default.metrics.rollingPercentile.timeInMilliseconds   rolling percentile window   ,  60000
hystrix.command.default.metrics.rollingPercentile.numBuckets   rolling percentile window numberBuckets。    。  6
hystrix.command.default.metrics.rollingPercentile.bucketSize   bucket size=100,window=10s,  10s  500   ,    100        bucket  。                  。  100
hystrix.command.default.metrics.healthSnapshot.intervalInMilliseconds   health   (          )   ,  500ms
Request Context     
hystrix.command.default.requestCache.enabled   true,    getCacheKey(),  null    
hystrix.command.default.requestLog.enabled      HystrixRequestLog,  true

Collapser Properties     
hystrix.collapser.default.maxRequestsInBatch            ,          ,  Integer.MAX_VALUE
hystrix.collapser.default.timerDelayInMilliseconds         ,            +  ,  10
hystrix.collapser.default.requestCache.enabled    HystrixCollapser.execute() and HystrixCollapser.queue() cache,  true

ThreadPool     
      10        (         ),         ,          follow:
requests per second at peak when healthy × 99th percentile latency in seconds + some breathing room
           (99%       +    )
  :     1000   ,99%        60ms,     :
(0.060+0.012)

               ,          ,       。
          ,        1 2          

hystrix.threadpool.default.coreSize           ,  10
hystrix.threadpool.default.maxQueueSize BlockingQueue      ,   -1,   SynchronousQueue,      LinkedBlcokingQueue。            ,      threadpool queue size,  reinitialising thread executor。  -1。
hystrix.threadpool.default.queueSizeRejectionThreshold   maxQueueSize    ,  queueSizeRejectionThreshold   ,       。  maxQueueSize       ,               。if maxQueueSize == -1,        
hystrix.threadpool.default.keepAliveTimeMinutes   corePoolSize maxPoolSize    (    )     。    plugin(https://github.com/Netflix/Hystrix/wiki/Plugins)       ,      ,  1.
hystrix.threadpool.default.metrics.rollingStats.timeInMilliseconds           ,  10000
hystrix.threadpool.default.metrics.rollingStats.numBuckets  rolling window   n buckets,  10

좋은 웹페이지 즐겨찾기