阿里巴巴宣布 Sentinel 开源,进一步完善 Dubbo 生态(附PPT)

本文主要是介绍阿里巴巴宣布 Sentinel 开源,进一步完善 Dubbo 生态(附PPT),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Aliware Open Source•深圳站现场

 

1、当服务量大到一定程度,流量扛不住的时候,该如何处理?

2、应用之间相互依赖,当应用A出现响应时间过长,影响到应用B的响应,进而产生连锁反应影响整个依赖链上的所有应用,该如何处理?

 

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 作为阿里巴巴“大中台、小前台”架构中的基础模块,覆盖了阿里的所有核心场景,也因此积累了大量的流量归整场景以及生产实践。在近期的Aliware Open Source•深圳站-Apache Dubbo & ApacheRocketMQ开发者沙龙上,阿里巴巴中间件高级技术专家 子矜 宣布将Sentinel 进行开源,并发布了首个社区版本v0.1.0,以下是根据子矜的现场分享所整理,为大家回顾分享中的精彩内容。

分享嘉宾介绍:

林佳梁(子矜),阿里巴巴中间件高级技术专家,参与阿里巴巴多年双十一大促,对流量的管控、高可用架构有着丰富的经验,目前负责流量管控软件Sentinel的开发和商业化。

 

☞ 公众号后台发送“深圳沙龙PPT”,下载全场PPT。

☞ 公众号后台发送“深圳沙龙视频”,观看全场回顾视频。

 

Sentinel开源地址:

https://github.com/alibaba/Sentinel 

 

一、Sentinel 的产生背景

在过去的 10 多年里,阿里巴巴投入了集团大量的精英人力用于提升淘宝、天猫平台服务的稳定性,正是有了多年来上万名阿里技术人才的持续创新和技术沉淀,在一系列秒杀大促中,特别是双11 这样现象级的电商大促中,才打造出了今天大家所看到的可轻松应对双11的平台稳定性体系,包括限流和降级、流量调度、业务开关、容量压测和评估、全链路压测、业务一致性平台等,而Sentinel正是在这种背景下产生的限流降级框架,目前已接入集团几乎所有的核心应用。

 

二、Sentinal 可以解决什么问题?

                      

➤ 限流:

当我们设计了一个函数,准备上线,这时候这个函数会消耗一些资源,处理上限是1秒服务3000个QPS,但如果实际情况遇到高于3000的QPS该如何解决呢?Sentinel提供了两种流量统计方式,一种是统计并发线程数,另外一种则是统计 QPS,当并发线程数超出某个设定的阀值,新的请求会被立即拒绝,当QPS超出某个设定的阀值,系统可以通过直接拒绝、冷启动、匀速器三种方式来应对,从而起流量控制的作用。

 

➤ 熔断降级:

接触过Spring Cloud、Service Mesh的同学,都知道熔断降级的概念。服务之间会有相互依赖关系,例如服务A做到了1秒上万个QPS,但这时候服务B并无法满足1秒上万个QPS,那么如何保证服务A在高频调用服务B时,服务B仍能正常工作呢?一种比较常见的情况是,服务A调用服务B时,服务B因无法满足高频调用出现响应时间过长的情况,导致服务A也出现响应过长的情况,进而产生连锁反应影响整个依赖链上的所有应用,这时候就需要熔断和降级的方法。Sentinel通过并发线程数进行限制和响应时间对资源进行降级两种手段来对服务进行熔断或降级。

 

Aliware Open Source•深圳站花絮

 

➤ 塑形

通常我们遇到的流量具有随机性、不规则、不受控的特点,但系统的处理能力往往是有限的,我们需要根据系统的处理能力对流量进行塑形,即规则化,从而根据我们的需要来处理流量。Sentinel通过资源的调用关系、运行指标、控制的效果三个维度来对流量进行控制,开发者可以自行灵活组合,从而达到理想的效果。

 

 

 

➤ 系统负载保护

平时系统运行都没问题,但遇到大促的时候,发现机器的load非常高,这时候对系统的负载保护就显得非常重要,以防止雪崩。Sentinel 提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。需要注意的是,Sentinel在系统负载保护方面的判断机制是根据系统能够处理的请求,和允许进来的请求,来做平衡,而不是根据一个间接的指标(系统load)来做限流。因为我们最终追求的目标是在系统不被拖垮的情况下,提高系统的吞吐率,而不是load一定要到低于某个阀值。

程序员gg们和他们的中间件小姐姐

 

 

三、一个好的流量管理框架应该具备哪些特点?

  轻巧

轻巧指的是对性能影响小和对应用零入侵。

 

限流框架是寄宿在应用上的,这时候要求限流框架不能对系统资源有过多的消耗。就像汽车上的安全气囊如果会耗油、导致汽车跑得慢,这就不是一个好气囊,Sentinel的接入对系统资源的消耗极少。

 

除了对性能的影响要优化到最低以外,还有一个特征,就是需要保证他对应用的零入侵。零入侵是让开发者几乎意识不到这个框架的存在。如果让开发者一边开发,一边还要想着限流降级,这就非常累了。优秀的限流就像是汽车上的安全气囊,平时系统工作正常的时候我们感受不到他的存在,只有当系统出现无法应对当前流量的时候,才会出现,这就是对应用零入侵的体现,开发者无需关心如何接入流量框架,便可调用服务。

 

对此,Sentinel通过对主流框架,例如Dubbo、Spring Cloud, grpc等,进行默认适配,只要接入我们的适配器,默认的资源就都有了;如果不是用主流框架,也没有关系,只需要很简单,差不多3步,就可以接入,之后还会提供annotation,让用户更简单的用起来。

 

  专业

不同的场景下有不同的限流需求。在什么时候减流量,流量减多了影响用户体验、流量减少了影响系统稳定性,陡峭高峰如何限流、销峰填谷如何限流,这里就涉及到限流的算法。不同于 hystrix 只提供一两个维度的限流方式,Sentinel提供了一个灵活的框架,从不同的维度出发,开发者可以根据自身的场景去制定自己的限流策略。

 

➤  实时监控

流量具有很强的实时性,之所以需要限流,是因为我们无法对流量的到来作出精确的预判,不然的话我们完全可以通过弹性的计算资源来处理,所以这时候限流框架的实时监控功能就非常重要了。通过Sentinel的实时监控功能,运维人员可以根据实际流量情况,采取不同的措施,限流、降级、塑形、系统保护,所以在我们第一版开源版本中,我们加入了Sentinel的控制台,具备实时监控功能。

认识这位开发者的同学记得到公众号后台给小姐姐留言喔

 

四、Sentinal 的最佳实践

➤  Dubbo service

 

我们已经把 Sentinel 的适配器捐给了Dubbo,社区地址:http://dubbo.incubator.apache.org/#!/blog/sentinel-introduction-for-dubbo.md?lang=zh-cn

 

如果开发者接入了Dubbo Sentinel,就能立即实现实时秒级监控的功能。这个监控提供单机链路维度和单机平铺维度,还提供汇总维度的监控。非常方便。

 

 

 

然后我们再来看Sentinel还带来了什么好处。当我们浏览一件商品时,背后可能应对着上百个服务,例如商品属性、商品库存、个人信息、评价信息、店铺信息、商品优惠、订单信息、交易信息、推荐信息等等,这类场景,我们可以由两个维度来看Sentinel在Dubbo service 中的实践,一个是从服务提供方service provider如何限流,例如在百个服务中要保证交易服务可以正常处理,那就可以通过容量或者并发量来限流。一个是从服务调用方service caller如何限流,则可以通过熔断降级来限流。

 

➤  RocketMQ客户端 & RocketMQ服务端

 

 

图中红色曲线是表示实际的消息流量,红色区域是超出我们处理能力的消息流量,这时候借助Sentinel对流量实施削峰填谷,把红色流量放到系统不太繁忙的时候再来处理,这样既不会丢失流量的请求,也不会对用户的购物体验产生影响。这类处理在电商的订单处理等环节很常见。在RocketMQ的服务端,消息的分发者则可以通过Sentinel匀速的对外发送请求。

 

 

这个最佳实践,我们也捐给了Apache RocketMQ,目前正在合并,大家很快就可以看到。

 

➤  Nacos

Sentinel和Nacos类似,是以Dubbo大生态中的核心组件的身份来对外开源的,目的是帮助开发者获得更完整的分布式服务解决方案。例如当我们限流的流量发生变化的时候,我们需要迅速推规则的时候,Sentinel可以和Nacos相互整合,起到快速操作、快速配送的效果。

 

Sentinel的理念是无缝对接Dubbo大生态,和Dubbo、Nacos等阿里中间件开源产品紧密结合,支持一键使用,并且全面拥抱开源生态,例如会对grpc ,Rest Service主流框架进行积极适配并开放出来,同时提供一系列API给到开发者,用于定制自己的需求。

这篇关于阿里巴巴宣布 Sentinel 开源,进一步完善 Dubbo 生态(附PPT)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127718

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端