阿里流控中间件sentinel的思考,客观的对比下sentinel和hytrix
简单说下, sentinel的优势: 友好的控制面板,支持实时监控 多种限流。支持QPS限流,线程数限流,多种限流策略,如:直接拒绝,匀速模式(漏斗),冷启动(如设置限制1000,延迟10秒,那第一秒pass100, 第二秒200,递增,适应于缓存保护) 多种降级模式,支持按平均返回时间降级,按多种异常数降级,按异常比率降级 方便扩展开发,支持SPI模式对chain进行扩展 支持链路的关联,按链路统计限流,系统保护,热门资源保护等等 如果远见点,看到阿里后面也开始弄全家桶了 https://github.com/spring-cloud-incubator/spring-cloud-alibaba 也是可以持续集成的 当然最终的是hytrix也已经停止维护了。 hytrix的优势 hytrix支持异步调用,支持线程池级别的隔离 这种方式就是通过rxJava进行调用,等待完成后进行异步通知调用,但在http这种请求中,主线程还是阻塞在等待中。带来的收益,无非就是hytrix能对超时进行控制。 但坏处也很明显,如果是每个接口创建一个线程池的话,如果接口过多,机器中会创建大量线程,而在java中,线程是属于轻量级的进程,对应是内核线程,进而造成线程的切换。成本还是挺高。 再者每个线程也得需要-Xxs的大小,如果线程数目过多也是一笔不小的花销。 hytrix支持百分比