线程隔离有两种方式实现:
- 线程池隔离(hystix 默认采用)
优点:支持主动超时,支持异步调用
缺点: 线程的额外开销比较大
场景: 低扇出(服务A调用服务B这种简单的调用) - 信号量隔离(Setinel 默认采用)
优点: 轻量级,无额外开销
缺点:不支持主动超时,不支持异步调用
场景: 高扇出,高频调用
Sentinel与Hystix的线程隔离有什么差别?
Hystix 默认是基于线程池实现线程隔离,每个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的CPU开销,性能一般,但是隔离性更强
Sentinel 是基于信号量(计算器)实现的线程隔离,不用线程池,性能较好,但是隔离性一般。