- 4、在 IntelliJ IDEA 中运行 Sentine Demo
按照官方的定义,Sentinel 意为分布式系统的流量防卫兵,主要提供限流、熔断等服务治理相关的功能。
服务的动态注册、服务发现是 SOA、微服务架构体系中首先需要解决的基本问题,服务治理是 SOA 领域又一重要课题,而 dubbo 框架只提供了一些基本的服务治理能力,例如限制服务并发调用数、配置合适的业务线程数量等,但熔断相关的功能就涉及的较少。
Sentinel 将作为 Dubbo 生态的重要一员,将集中解决服务治理相关的课题,服务限流与熔断又是服务治理首先要解决的课题。
那什么是限流与熔断呢?
限流:我们通常使用TPS对流量来进行描述,限流就是现在服务被调用的并发TPS,从而对系统进行自我保护。
熔断:就是当系统中某一个服务出现性能瓶颈是,对这个服务的调用进行快速失败,避免造成连锁反应,从而影响整个链路的调用。
限流还是比较好理解,例如一个项目在上线之前经过性能测试评估,例如服务在 TPS 达到 1w/s 时系统资源利用率飙升,与此同时响应时间急剧增大,那我们就要控制该服务的调用TPS,超过该 TPS 的流量就需要进行干预,可以采取拒绝、排队等策略,实现流量的削峰填谷。
还有一个场景,例如一下开放平台,对接口进行收费,免费用户要控制调用TPS,账户的等级不同,允许调用