| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Cloud Alibaba 快速入门(四):Sentinel接口限流和熔断降级 -> 正文阅读 |
|
[Java知识库]Spring Cloud Alibaba 快速入门(四):Sentinel接口限流和熔断降级 |
前言:随着微服务的流行,服务和服务之间的稳定性变得越来越重要。阿里开源的Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。 ?一、服务降级和服务熔断的区别一个分布式应用会依赖多个服务,每个服务可能会存在多个实例,服务依赖的中间件也可能是分布式的,当应用规模足够大,某个节点出现故障的概率也因此增加。在分布式系统中,应把故障当作应用的一部分,我们需要保证当某个节点出现故障时整个应用依然能正常运行,要避免服务雪崩。
熔断和降级的到底有啥区别,我个人理解是: 服务降级有很多种降级方式,服务熔断属于降级方式的一种,服务降级是更广泛的方案。服务降级需要将服务按级别进行分类,优先对影响较小的服务进行降级。 服务降级方式:
熔断降级的开源方案:Neflix的Hystrix和阿里巴巴的Sentinel,随着Hytrxi进入了维护期,推荐使用Sentinel。 ?二、Sentinel简介2.1、什么是Sentinel
通常情况,Hystrix采用线程池对服务的调用进行隔离,Sentinel才用了用户线程对接口进行隔离,二者相比,Hystrxi是服务级别的隔离,Sentinel提供了接口级别的隔离,Sentinel隔离级别更加精细,另外Sentinel直接使用用户线程进行限制,相比Hystrix的线程池隔离,减少了线程切换的开销。另外Sentinel的DashBoard提供了在线更改限流规则的配置,也更加的优化。 2.2、Sentinel 特征
2.3、Sentinel 的主要特性Sentinel 分为两个部分: 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。 2.4、Sentinel主要功能:流量控制、熔断降级、系统负载保护
三、Sentinel安装
找到Sentinel服务端官方地址,下载jar,地址:https://github.com/alibaba/Sentinel/releases
?访问web地址:http://localhost:8080 ? 默认用户名和密码都是sentinel/sentinel,然后进入首页 ?至此Sentinel服务端搭建完成,接下来使用微服务快速集成sentinel 四、Sentinel快速集成4.1、pom.xml中引入依赖
4.2、order-service服务添加Sentinel配置项
4.3、启动客户端服务order-service,调用OrderController的接口,可在Sentinel管理界面查看客户端信息,如图:4.4、流量控制规则配置给remoteProduct接口添加流控规则,它的QPS(每秒请求数)为1,如图: 通过频繁调用remoteProduct查询接口,通过监控可以看到如图信息:? ?发现刷新点快了,确实会被限流拒绝 ?4.5、熔断降级规则配置给remoteProduct接口添加一个熔断降级规则配置,如果QPS大于1,且平均响应时间大于20ms,则接口下来接口在2秒钟无法访问,之后自动恢复。 ?热点,授权等操作,根据自己需求自行配置即可,至此集成完毕。 4.6、Sentinel 提供了@SentinelResource注解用于定义资源,并提供了AspectJ的扩展用于自定义资源,处理BlockException等。现在我们了解到通过 ?参考链接: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:32:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |