链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

alibaba/Sentinel:面向云原生微服务的高可用流控防护组件

alibaba/Sentinel是一个面向云原生微服务的高可用流控防护组件。随着分布式系统流行,服务可靠性至关重要。Sentinel以流为突破点,涉及流控、流量整形等多领域。在阿里巴巴广泛用于双11核心场景,如秒杀等。它有实时监控能力、广泛开源生态,支持多语言,还有SPI扩展接口...

访问官网 →

【Github】项目名:alibaba/Sentinel:面向云原生微服务的高可用流控防护组件

一、项目简介

随着分布式系统日益流行,服务间的可靠性变得前所未有的重要。Sentinel以“流”为突破点,在流控、流量整形、并发限制、熔断以及系统自适应过载保护等多个领域开展工作,为微服务保障可靠性和弹性。它具有丰富的适用场景,在阿里巴巴被广泛应用,过去10年几乎覆盖了双11购物节的所有核心场景,像需要限制突发流量以满足系统容量的“秒杀”场景、消息削峰填谷、对不可靠的下游服务进行熔断、集群流控等。同时,它提供实时监控能力,能实时查看单机运行时信息,还能查看少于500个节点的集群的聚合运行时信息。Sentinel有着广泛的开源生态系统,与Spring Cloud、gRPC、Apache Dubbo和Quarkus等常用框架和库有开箱即用的集成,支持Java、Go、C++和Rust多语言,提供易于使用的SPI扩展接口用于定制逻辑。

二、核心技术

Sentinel以“流”为核心开展工作,通过相关算法和机制实现流控、流量整形等功能。在流控方面,可设置如QPS(每秒查询率)等规则来限制资源的访问次数,像定义规则限制资源每秒最多访问20次(List rules = new ArrayList<>(); FlowRule rule = new FlowRule(); rule.setResource(“HelloWorld”); rule.setCount(20); rule.setGrade(RuleConstant.FLOW_GRADE_QPS); rules.add(rule); FlowRuleManager.loadRules(rules);)。其提供了SPI扩展接口方便用户快速定制逻辑,如自定义规则管理、适配数据源等。在与其他框架和库集成方面,针对Spring Cloud、Apache Dubbo、gRPC、Quarkus、Spring WebFlux、Reactor等都有相应的集成模块,只需简单添加适配器依赖就可使用。

三、项目总结

Sentinel是一个功能强大的面向云原生微服务的高可用流控防护组件。无论是其丰富的功能、广泛的适用场景,还是开源生态系统都表现出色。希望使用过该项目的朋友可以在这里留言分享使用场景等内容,让Sentinel变得更好。也欢迎大家添加自己的博客文章、教程、演示或定制组件的链接到Awesome Sentinel。

项目地址

GitHub链接直达