Sentinel 支持多种流量控制模式,每种模式都有其适用场景和特点。以下是 Sentinel 支持的主要流量控制模式:
-
直接模式 (Direct Mode):
- 这是最基本的流量控制模式,直接对资源的访问进行限流。当请求量超过预设阈值时,直接拒绝额外的请求。
- 适用于大部分场景,例如对某个特定API的访问频率进行限制。
-
排队等待模式 (Queueing Mode):
- 当请求超过阈值时,将新的请求放入队列中等待处理。
- 适用于需要保证一定顺序处理的场景,或者当系统有能力处理突发流量时。
-
关联模式 (Linked Mode):
- 当一个资源的访问频率超过阈值时,会影响到另一个关联资源的访问。
- 适用于多个资源之间存在依赖关系的情况,例如一个资源的高访问量可能会影响其依赖资源的性能。
-
预热模式 (Warm Up Mode):
- 在系统启动初期,逐渐增加流量限制,让系统有一个逐步增加负载的过程,以避免启动时瞬间流量过大导致系统不稳定。
- 有助于保护刚启动的服务,使其能平稳过渡到满负荷工作状态。
-
链路模式 (Link Mode):
- 只针对从特定链路到达的请求进行统计和控制,而非所有请求。
- 适用于需要根据不同链路进行差异化流量控制的场景。
-
直接失败模式 (Direct Failure Mode):
- 达到流量控制阈值后,直接拒绝请求并返回错误信息,不将请求放入队列等待处理。
- 适用于需要快速响应请求的场景,避免系统资源过度消耗。
这些模式可以单独使用也可以组合使用,以适应各种不同的流量控制需求。通过 Sentinel 控制台或编程接口,可以根据实际业务场景灵活配置这些模式的规则。