server
:
port
:
8081
spring
:
application
:
name
: consumer-user-service
eureka
:
client
:
service-url
:
defaultZone
: http://localhost:8761/eureka/
fetch-registry
: true
register-with-eureka
: true
instance
:
instance-id
: ${
spring.application.name
}:${
server.port
}
prefer-ip-address
: true
feign
:
hystrix
:
enabled
: true
hystrix
:
#hystrix
的全局控制
command
:
default
:
#default
是全局控制,也可以换成单个方法控制,把
default
换成方法名即可
fallback
:
isolation
:
semaphore
:
maxConcurrentRequests
: 1000
#
信号量隔离级别最大并发数
circuitBreaker
:
enabled
: true
#
开启断路器
requestVolumeThreshold
: 3
#
失败次数(阀值)
sleepWindowInMilliseconds
: 20000
#
窗口时间
errorThresholdPercentage
: 60
#
失败率
execution
:
isolation
:
Strategy
: thread
#
隔离方式
thread
线程隔离集合和
SEMAPHORE
信号量隔离
级别
thread
:
timeoutInMilliseconds
: 3000
#
调用超时时长
ribbon
:
ReadTimeout
: 5000
#
要结合
feign
的底层
ribbon
调用的时长
ConnectTimeout
: 5000
#隔离方式 两种隔离方式 thread 线程池 按照 group(10 个线程)划分服务提供者,用户请求的线程
和做远程的线程不一样
# 好处 当 B 服务调用失败了 或者请求 B 服务的量太大了 不会对 C 服务造成影响 用户访问比较大的情
况下使用比较好 异步的方式
# 缺点 线程间切换开销大,对机器性能影响
# 应用场景 调用第三方服务 并发量大的情况下
# SEMAPHORE 信号量隔离 每次请进来 有一个原子计数器 做请求次数的++ 当请求完成以后 --
# 好处 对 cpu 开销小
# 缺点 并发请求不易太多 当请求过多 就会拒绝请求 做一个保护机制
# 场景 使用内部调用 ,并发小的情况下
# 源码入门 HystrixCommand AbstractCommand