Java限流之 —— Sentinel初识

前言

在之前的篇章中,我们聊到了限流的常用解决方案,基于限流衍生出了一些适合在并发场景下的解决方案,常用的像单机模式下的guawa限流,基于原生的限流算法如漏桶、令牌桶等封装出限流逻辑,redis+lua限流,甚至可以利用nginx做限流等,

但是在微服务越来越普遍,微服务的治理和治理场景也越加复杂的环境下,对于限流的治理也难说通过单一的维度能达到一劳永逸的效果,通常是根据业务的不同,在不同的微服务模块下使用不同的限流解决方案,通用的办法就是,nginx + 网关 + 后端应用 进行配合的多级限流,至少这是一种可靠的方式

但是,开发人员或者运维人员需要一种更简易,更灵活的方式对后端的服务进行限流,甚至希望可以直接操作可视化界面达到对服务资源的精细化控制,类似于dubbo的管控台那样,做到对服务接口的细粒度的把控,于是sentinel就成为了一种很好的选择

hystrix

在正式开始谈论sentinel之前,想简单提一下hystrix这个限流组件,其实hystrix在微服务规模化使用之前,作为限流、熔断与降级的场景下,是一个很好的选择,hystrix提供了比较丰富的API用于限流、熔断与降级,而且只需要进行简单的配置或注解即可,对后端业务代码的侵入性很小,hystrix提供了超时降级、线程池隔离、信号量隔离等使用方式,基本上可以应对大部分场景下的使用

sentinel是什么

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点&

你可能感兴趣的:(网关与限流术,Sentinel基本使用)