文档章节

Hystrix之外健壮微服务的新选择:Sentinel 发布首个生产版本

阿里云云栖社区
 阿里云云栖社区
发布于 11/08 15:38
字数 1530
阅读 284
收藏 3

Sentinel 阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。

近日,阿里中间件开源组件Sentinel 发布首个官方推荐可生产版本:1.3.0-GA ,该版本包括 Sentinel 控制台功能的完善和一些 bug 修复,以及其它的产品改进,是一个具有里程碑意义的生产可用版本。

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,完美地保障了阿里巴巴历年双十一的稳定性,因此从开源之初即具备生产可用的能力。Sentinel 开源三个月以来,受到开源社区的广泛关注,目前已有多个企业用户在生产环境中使用,得到了用户的一致好评,Github社区star数突破3000。

  • 2012 年,Sentinel 诞生于阿里巴巴集团内部,主要功能为入口流量控制;
  • 2013 - 2018 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量控制场景以及生产实践;
  • 2018 年7月,Sentinel 正式开源,首个版本(0.1.0)即生产可用;
  • 2018 年9月,Sentinel 的重要里程碑版本 0.2.0 发布,带来多项全新特性,同时已有外部企业用户在生产环境中使用;
  • 2018 年10月末,Sentinel 进入 CNCF Landscape;Sentinel 的里程碑版本 1.3.0-GA 发布,重要的生产可用版本。

Sentinel 的开源生态非常广泛,其针对常用的框架和库进行了适配,包括 Web Servlet、Dubbo、Spring Cloud和gRPC 等,用户只需引入相应依赖并进行简单配置即可快速接入 Sentinel。同时,Sentinel 动态规则源针对常见的配置中心和远程存储进行适配,目前已支持 Nacos、ZooKeeper、Apollo、Redis 等多种动态规则源,可以覆盖到很多的生产场景。未来,Sentinel 还会对更多常用框架和配置中心进行适配,覆盖更广泛的场景。

 

1540792751646_9b60c907_c52c_4ce2_9bd5_414919f07e4c

那么 Sentinel 作为生产可用的流量控制框架,都有哪些吸引人的特性呢?

轻量级

Sentinel 作为一个功能完备的高可用流量控制框架,其核心 sentinel-core 没有任何多余依赖,打包后只有 200 KB,非常轻量级,用户可以放心地引入 sentinel-core 而不需担心依赖问题。同时,引入 Sentinel 带来的性能损耗非常小,单机 QPS 不太大的时候损耗几乎可以忽略不计(单机 4.3W QPS 的损耗约为 2.36%),因此也无需担心 Sentinel 影响线上业务性能的问题。

 

1540796176928_17f11ad3_de1c_4d92_a2ff_735e029c02dd

易用的控制台

Sentinel 控制台提供强大的实时监控和规则配置管理能力,用户可以非常方便地:

  • 直观地查看不同应用、不同资源的实时监控数据

1540802361844_a47639b7_f393_4455_a927_07edbed5f617_1_

  • 查看当前的资源调用链路以及实时的调用数据

 

1540802368479_264a7e2e_3c0b_432a_9a88_350401cd9e6c

  • 配置流控规则、降级规则、系统保护规则、热点规则、授权规则

 

1540802374948_0c067d75_f489_40c3_acf4_593ac81789b9

若用户在生产环境中使用了动态规则源,只需对控制台进行少量的改造即可在生产环境中使用 Sentinel 控制台,可以参考 在生产环境中使用 Sentinel 控制台 一文。

专业的流量控制

Sentinel 提供多个方面的专业流控能力来保障服务的稳定性:

  • 多维度的流量控制:流量是实时的、不确定的,因此我们需要对实时到来的不规则的流量进行一定的控制。Sentinel 从资源粒度、运行的指标、资源的调用关系、控制效果等多个维度提供流量控制的能力;
  • 服务的熔断降级:Sentinel 从多个方面提供对不稳定服务降级的能力,可以及时熔断不稳定的服务(如响应时间非常长的服务),防止拖垮下游服务造成级联错误;
  • 全局维度的系统保护:Sentinel 从全局的维度对系统负载进行保护,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求;
  • 黑白名单控制:根据资源的调用方来决定资源请求是否通过;
  • 热点参数限流:对热点数据的访问进行限制,参数粒度的流量控制;

如何使用

Sentinel 提供多样化的 SPI 接口用于提供扩展的能力。用户可以在用同一个 sentinel-core 的基础上自行扩展接口实现,从而可以方便地根据业务需求给 Sentinel 添加自定义的逻辑。目前 Sentinel 提供如下的扩展点:

  • 初始化过程扩展:可以添加自定义的一些初始化逻辑,如动态规则源注册等;
  • Slot Chain 扩展:用于给 Sentinel 功能链添加自定义的功能并自由编排;
  • 指标统计扩展(StatisticSlot Callback):用于扩展StatisticSlot 指标统计相关的逻辑;
  • Transport 扩展:用于对心跳发送、监控 API Server 进行扩展。

 

1539165202133_64062dc7_88f1_45ac_8177_c29cd9ca0e9d

据悉,Sentinel 还将在后续版本中推出集群限流功能、 API Gateway(如Netflix Zuul)和Service Mesh(如 Istio)全局流量控制等高级特性。

作者: 中间件小哥
原文链接
本文为云栖社区原创内容,未经允许不得转载。

© 著作权归作者所有

共有 人打赏支持
阿里云云栖社区
粉丝 63
博文 684
码字总数 1509769
作品 0
朝阳
私信 提问
加载中

评论(1)

玻璃樽1
新人福利:还有几天了,8000人团!第一大团!!对于新人阿里云真的是下血本了,建议阿里云新人一定一定一定不要错过。 ** 划重点了: ** 1核2G云服务器1年仅需99.5元!!! 1核2G云服务器3年仅需298.50元!!!** 该折扣仅限新人!
这是我的拼团团队地址:https://m.aliyun.com/act/team1111/#/share?params=N.EN2hxhpNQG.34ljy3ay
Hystrix之外健壮微服务的新选择:Sentinel 发布首个生产版本

Sentinel 阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 近日,阿里中间...

阿里云云栖社区
11/07
0
0
从架构演进的角度聊聊Spring Cloud都做了些什么?

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cloud在微服务...

纯洁的微笑
2017/11/02
0
0
从架构演进的角度聊聊Spring Cloud都做了些什么?

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cloud在微服务...

纯洁的虫纸
2017/11/07
0
0
从架构演进的角度聊聊 Spring Cloud 都做了些什么?

引用 作者:纯洁的微笑 Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题...

xixingzhe
2017/11/02
0
0
高可用流量管理框架 - Sentinel

Sentinel 是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护...

小鼠标李豪
08/06
0
3

没有更多内容

加载失败,请刷新页面

加载更多

php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
10分钟前
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
28分钟前
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
53分钟前
1
0
【分享实录】BANCOR算法详解及代码实现

1 活动基本信息 1)主题:【区块链技术工坊22期】BANCOR算法详解及代码实现 2)议题: BANCOR算法的特点和优劣势 BANCOR算法和举例 如何加入BANCOR.NETWORK交易所 如何开发自己的BANCOR去中心...

HiBlock
今天
2
0
微信小程序(2)

开始看微信小程序的教程了。刚刚看完官方教程的视图层部分。这里摘录一些自己认为的部分关键点。 1.直接修改数值无法重新渲染,需要使用setData()方法; 2.列表渲染中:wx:key用于保持项目在...

MKjy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部