05 eureka consumer ribbon - RickJou/SpringCloudDemo GitHub Wiki

重要配置

application.properties

注意事项

  • 两个不同的配置文件分别使用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