05 eureka consumer ribbon - RickJou/SpringCloudDemo GitHub Wiki
重要配置
注意事项
-
两个不同的配置文件分别使用1001和1002对外提供注册服务
server.port=1001
server.port=1002
-
连接数配置
#客户端到所有服务端的连接总数
eureka.client.eureka-server-total-connections=200
#客户端到每个服务端的连接总数
eureka.client.eureka-server-total-connections-per-host=50
-
ribbon 负载均衡策略
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.BestAvailableRule
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.WeightedResponseTimeRule
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RetryRule
EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
#EUREKA-PRODUCER.ibbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.ZoneAvoidanceRule
-
Hystrix 配置
超时时间(默认1000ms,单位:ms)
在调用方配置,被该调用方的所有方法的超时时间都是该值,优先级低于下边的指定配置
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=1000ms
在调用方配置,被该调用方的指定方法(HystrixCommandKey方法名)的超时时间是该值
#hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds
线程池核心线程数
hystrix.threadpool.default.coreSize=10
-
限流设置
Queue1 (默认) 最大排队长度。默认-1,使用SynchronousQueue。其他值则使用 LinkedBlockingQueue。如果要从-1换成其他值则需重启,即该值不能动态调整,若要动态调整,需要使用到下方注释掉的配置
hystrix.threadpool.default.maxQueueSize=-1
排队线程数量阈值,默认为5,达到时拒绝,如果配置了该选项,队列的大小是该队列 注意:如果maxQueueSize=-1的话,则该选项不起作用
#hystrix.threadpool.default.queueSizeRejectionThreshold=5
Queue2 (开启限流)
最大排队长度。默认-1,使用SynchronousQueue。其他值则使用 LinkedBlockingQueue。如果要从-1换成其他值则需重启,即该值不能动态调整,若要动态调整,需要使用到下方注释掉的配置
#hystrix.threadpool.default.maxQueueSize=1
#排队线程数量阈值,默认为5,达到时拒绝,如果配置了该选项,队列的大小是该队列
#注意:如果maxQueueSize=-1的话,则该选项不起作用
#hystrix.threadpool.default.queueSizeRejectionThreshold=5
-
断路器配置
断路器开关默认true
circuitBreaker.enabled=true
#当在配置时间窗口内达到此数量的失败后,进行短路。默认20个
hystrix.command.default.circuitBreaker.requestVolumeThreshold=20
#短路多久以后开始尝试是否恢复,默认5000ms
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5000
#出错百分比阈值,当达到此阈值后,开始断路。默认50%
hystrix.command.default.circuitBreaker.errorThresholdPercentage=50
#如果该属性设置为true,强制断路器进入打开状态,将会拒绝所有的请求。
#circuitBreaker.forceOpen=true
#如果该属性设置为true,强制断路器进入关闭状态,将会允许所有的请求,无视错误率。
#circuitBreaker.forceClosed=true
-
服务降级
#调用线程允许请求HystrixCommand.GetFallback()的最大数量,默认10。超出时将会有异常抛出,注意:该项配置对于THREAD隔离模式也起作用
hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests=10