生涯的 错误日志 物语
1. Gateway中使用eureka服务名代替IP,结果抛出服务错误提示
在uri前将http:替换为lb:即可,如2所示,并且如需要配置ribbon的规则,可以加入如1
cloud-pay-hystrix-service:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
2. Hystrix配置FeignService时无法配置timeout的数值(如1),此时需要全局配置或者局部
hystrix:
command:
default: #default全局有效,service id指定应用有效
execution:
isolation:
thread:
timeoutInMilliseconds: 5000 #断路器超时时间,默认1000ms
3. ribbon读取数据超时导致异常,需要设置yml
ribbon:
ReadTimeout: 500000
ConnectTimeout: 60000
4. Hystrix线程池的设置没有设置好大小会导致拒绝服务,不会让其继续等待服务
可使用如下,需要后两者的协同,其中一个过小都会导致些许服务被拒绝
hystrix:
threadpool:
default:
coreSize: 200 #并发执行的最大线程数,默认10
maxQueueSize: 1000 #BlockingQueue的最大队列数,默认值-1
#即使maxQueueSize没有达到,达到queueSizeRejectionThreshold该值后,请求也会被拒绝,默认值5
queueSizeRejectionThreshold: 800
也可以这样(局部)