Java限流之——Sentinel初识
前⾔
在之前的篇章中,我们聊到了限流的常⽤解决⽅案,基于限流衍⽣出了⼀些适合在并发场景下的解决⽅案,常⽤的像单机模式下的guawa限流,基于原⽣的限流算法如漏桶、令牌桶等封装出限流逻辑,redis+lua限流,甚⾄可以利⽤nginx做限流等,
但是在微服务越来越普遍,微服务的治理和治理场景也越加复杂的环境下,对于限流的治理也难说通过单⼀的维度能达到⼀劳永逸的效果,通常是根据业务的不同,在不同的微服务模块下使⽤不同的限流解决⽅案,通⽤的办法就是,nginx + ⽹关 + 后端应⽤ 进⾏配合的多级限流,⾄少这是⼀种可靠的⽅式
但是,开发⼈员或者运维⼈员需要⼀种更简易,更灵活的⽅式对后端的服务进⾏限流,甚⾄希望可以直接操作可视化界⾯达到对服务资源的精细化控制,类似于dubbo的管控台那样,做到对服务接⼝的细粒度的把控,于是sentinel就成为了⼀种很好的选择
hystrix
在正式开始谈论sentinel之前,想简单提⼀下hystrix这个限流组件,其实hystrix在微服务规模化使⽤之前,作为限流、熔断与降级的场景下,是⼀个很好的选择,hystrix提供了⽐较丰富的API⽤于限流、熔断java开发可视化界面
与降级,⽽且只需要进⾏简单的配置或注解即可,对后端业务代码的侵⼊性很⼩,hystrix提供了超时降级、线程池隔离、信号量隔离等使⽤⽅式,基本上可以应对⼤部分场景下的使⽤
sentinel是什么
随着微服务的流⾏,服务和服务之间的稳定性变得越来越重要。Sentinel 是⾯向分布式服务架构的流量控制组件,主要以流量为切⼊点&
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论