-
Notifications
You must be signed in to change notification settings - Fork 22
并发隔离控制
Peihao Yang edited this page Sep 30, 2021
·
1 revision
并发隔离控制是指基于资源访问的并发协程数来控制对资源的访问,这里的思路和信号量隔离很类似,主要是控制对资源访问的最大并发数,避免因为资源的异常导致协程耗尽。
并发隔离规则的定义如下:
// Rule describes the concurrency num control, that is similar to semaphore
pub struct Rule {
pub id: String,
pub resource: String,
pub metric_type: MetricType,
pub threshold: u32,
}
Sentinel 支持使用 Concurrency
,也就是并发数作为统计指标。如果资源当前的并发数高于阈值 (threshold),那么资源将不可访问。
隔离规则配置示例(具体数值不作为线上配置参考,要根据业务系统情况而定):
{
resource: "abc".into(),
metric_type: MetricType::Concurrency,
threshold: 100,
..Default::default()
}
在分布式系统架构中,我们一般推荐在客户端(调用端)做一层软隔离(并发隔离控制),达到对资源访问的并发控制的目的。