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

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 还会对更多常用框架和配置中心进行适配,覆盖更广泛的场景。

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

轻量级

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

易用的控制台

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

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

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

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

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

专业的流量控制

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

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

如何使用

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

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

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

 

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器系统功能描述,Hadoop mapreduce核心功能描述

在任务执行期间,应用程序在写文件时可以利用这个特性,比如 通过 FileOutputFormat.getWorkOutputPath()获得${mapred.work.output.dir}目录, 并在其下创建任意任务执行时所需的side-file,框架在任务尝试成功时会马上移动这些文件&…

怎样修改老旧commit的message信息?

找到操作提交记录的父提交id&#xff0c;也可以理解为上一次提交记录 git rebase -i <父commitid> 只修该提交信息用把pick更新为r&#xff0c;然后在git弹出的命令窗口中&#xff0c; 修改提交记录信息&#xff0c;最后保存退出即可

腾讯Techo开发者大会揭晓云存储发展趋向:高性能、高可用、高性价比

产业数字化转型过程中产生着比过去任何一个时代都多的数据。在这样的背景下&#xff0c;数据存储技术应该怎么发展&#xff1f;11月7日&#xff0c;在腾讯Techo开发者大会上&#xff0c;来自科研领域的专家和腾讯云存储业务的工程师们共同揭开了云存储的发展趋势。 据IDC预测&…

python中imread导入失败_ImportError:无法导入加载图像文件所需的Python Imaging Library(PIL)...

我正在尝试在facemorpher 1.0.1 python包中运行average.py程序.我创建了一个虚拟环境,该环境中安装了带有自制软件的openCV,安装在自制软件中的python 2.7和可执行框架python,它们在虚拟环境cv中构建了python的框架.运行平均程序当前给我这个输出.(cv) Francess-MacBook-Pro-2:…

java 计算机开始时间,关于计算Java程序运行时间

第一种是以毫秒为单位计算的。Java代码//伪代码long startTimeSystem.currentTimeMillis(); //获取开始时间doSomeThing(); //测试的代码段long endTimeSystem.currentTimeMillis(); //获取结束时间System.out.println("程序运行时间&#xff1a; "(end-start)&qu…

2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量

双11快乐&#xff0c;该买的应该都已经买到了吧&#xff1f; 跟大家说个暖心事儿&#xff1a;今天&#xff0c;阿里云以天猫双11之子派大星星星l的名义&#xff0c;在公安部打拐办团圆项目、缘梦基金、宝贝回家等公益组织的鼎力支持下&#xff0c;将失踪儿童的信息放在这个网页…

怎样把连续的多个commit整理成1个?

怎样把连续的多个commit整理成1个&#xff1f;前提是&#xff1a;此分支尚未推送至远程&#xff0c;只修该提交记录&#xff0c;对提交文件内容不做修改 找到操作提交记录的父提交id&#xff0c;也可以理解为上一次提交记录 git rebase -i ac5e973 1.找到像合并的那几个提交信息…

重磅!云+X 案例征集正式启动啦!

云计算的概念已经悄然走过十余年&#xff0c;尽管我们对于它的关注&#xff0c;没有像人工智能、物联网、区块链那么密切&#xff0c;但是云服务在我们的生活与工作中早已无处不在。越来越多的新兴技术高调出现在大众的面前&#xff0c;唯有云计算仍以最低调的态度做着最实用的…

Nacos 发布0.3.0版本,迄今为止最好看的版本

近日&#xff0c;Nacos 0.3.0 正式发布&#xff0c;该版本旨在增强对服务列表&#xff0c;健康状态管理&#xff0c;服务治理&#xff0c;分布式配置管理等方面的管控能力&#xff0c;以便进一步帮助用户降低管理微服务应用架构的成本&#xff0c;在第一版的 UI 功能规划中&…

定义快捷代码_nodepad++代码编辑器替代工具整理

概述代码编辑工具选择Visual Studio CodeVS vode特点&#xff1a;开源&#xff0c;免费&#xff1b;自定义配置集成git智能提示强大支持各种文件格式(html/jade/css/less/sass/xml)调试功能强大各种方便的快捷键强大的插件扩展EditPlus默认支持HTML、CSS、PHP、ASP、Perl、C/C、…

王者荣耀转移完成会显示我的服务器吗,王者荣耀账号多久能转移完

4月29日&#xff0c;王者荣耀已经发布跨系统角色转移测试名额&#xff0c;每日限量&#xff0c;各位召唤师也都蠢蠢欲动&#xff0c;期待已久的功能终于上线啦&#xff0c;感兴趣的小伙伴快跟着超分手游网的小编一起去了解一下吧&#xff01;王者荣耀账号多久能转移完申请提交后…

怎样把间隔的几个commit整理成1个呢?

怎样把间隔的几个commit整理成1个呢&#xff1f; 前提是&#xff1a;此分支尚未推送至远程&#xff0c;只修该提交记录&#xff0c;对提交文件内容不做修改 找到操作提交记录的父提交id&#xff0c;也可以理解为上一次提交记录 git rebase -i ac5e973 1.找到像合并的那几个提交…

华为双11发 20 亿奖金!?

戳蓝字“CSDN云计算”关注我们哦&#xff01;11 月 11 日当天&#xff0c;有华为员工在社交网络上爆料称&#xff0c;华为双 11 发放两份特别奖金&#xff0c;一份是阳关普照奖&#xff0c;另外一份是 20 亿奖金。该爆料称&#xff1a;“双 11&#xff0c;华为发放两份特别奖金…

python语言是编译性语音_最强编程语言 Java 和最受欢迎之 Python 的巅峰对决

作为程序员们的看家利器之编程语言&#xff0c;倘若技术开发者对其掌握得越深则对自身职业生涯越有益处&#xff0c;然随着技术的更新变革&#xff0c;我们在日常使用不单单只会用到一门编程语言&#xff0c;那么究竟该如何选择一门新的语言来上手&#xff1f;本文中&#xff0…

ajax结合java,ajax技术应用详细分析(后端java与客户端请求的结合)

Ajax 技术应用先回看 模态框的使用js比较薄弱如上 比如这部分加粗样式如下 是BOM窗口对象**js最薄弱 建议在浏览器练习** confirm方法跳转练习新疑问:怎么分辨js,jQuery和jsp代码 与其实现应用插入小点**延申说法 client客户端发送请求 (客户端层面)是client前端页面层****重要…

MySQL的未来在哪?

阿里云 MySQL&MariaDB 数据库产品结合开源社区&#xff0c;提供了稳定、可靠、便捷、弹性的在线数据库服务&#xff0c;帮助全球企业客户进行数字化转型。MySQL发展经历了一系列变化&#xff0c;从Sun到Oracle&#xff0c;发展也经过了几个阶段。MySQL从5.7版本开始走上了代…

Git 汇总

怎样比较暂存区和HEAD所含文件的变化&#xff1f;适用于&#xff0c;工作区的文件已经添加至暂存区&#xff0c;尚未进行提交&#xff0c;比较暂存区和当前分支的文件的不同&#xff0c;如果添加至暂存区的文件正确的&#xff0c;可以进行提交&#xff0c;推送远程&#xff1b;…

代码写成这样,老板把我开除了| IT 巨能唠

今天聊一聊遇到过的一些神逻辑代码&#xff0c;不一定很全&#xff0c;但真心让小编我自叹不如啊&#xff01;1、耍猴的最佳手段还记得 XX 手机的抢购活动么&#xff0c;抢购按钮的代码类似是这样的&#xff1a;<a href"javasript:alert(抢购结束!)">立即抢购&…

springboot+vue项目如何在linux上部署

在linux上部署项目&#xff0c;是我们实训项目作业的最后一步&#xff0c;此时我们的项目编码测试已经完成&#xff0c;接下来就需要在服务器上部署上线&#xff0c;那么如何部署上线&#xff0c;接下来我会在虚拟机上的CentOS7系统上实现部署&#xff0c; 一.下载JDK 因为我…

如何把暂存区恢复成和HEAD的一样?

使用场景&#xff1a; 本来打算&#xff0c;将暂存区的文件&#xff0c;进行提交本地仓分支当做一个新的版本&#xff0c; 但是发现&#xff0c;现在工作区的对文件的修改更适合作为一个新的版本&#xff0c;提交 至本地仓库的分支上&#xff0c;暂存区的文件需要全部删除&…