前言
在之前的篇章中,我们聊到了限流的常用解决方案,基于限流衍生出了一些适合在并发场景下的解决方案,常用的像单机模式下的guawa限流,基于原生的限流算法如漏桶、令牌桶等封装出限流逻辑,redis+lua限流,甚至可以利用nginx做限流等,
但是在微服务越来越普遍,微服务的治理和治理场景也越加复杂的环境下,对于限流的治理也难说通过单一的维度能达到一劳永逸的效果,通常是根据业务的不同,在不同的微服务模块下使用不同的限流解决方案,通用的办法就是,nginx + 网关 + 后端应用 进行配合的多级限流,至少这是一种可靠的方式
但是,开发人员或者运维人员需要一种更简易,更灵活的方式对后端的服务进行限流,甚至希望可以直接操作可视化界面达到对服务资源的精细化控制,类似于dubbo的管控台那样,做到对服务接口的细粒度的把控,于是sentinel就成为了一种很好的选择
hystrix
在正式开始谈论sentinel之前,想简单提一下hystrix这个限流组件,其实hystrix在微服务规模化使用之前,作为限流、熔断与降级的场景下,是一个很好的选择,hystrix提供了比较丰富的API用于限流、熔断与降级,而且只需要进行简单的配置或注解即可,对