SpringCloud 분포 식 마이크로 서비스 b2b2c - hystrix 파라미터 상세 설명 (10)
5560 단어 springcloudspring
@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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Cloud에서 Feign에 대한 일반적인 질문 요약1. FeignClient 인터페이스, @GettingMapping 같은 조합 메모는 사용할 수 없음 코드 예: 이쪽 @RequestMapping(value = "/simple/{id}", method = Reque...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.