【微服务】【Sentinel】认识Sentinel

文章目录

  • [1. 雪崩问题](#1. 雪崩问题)
  • [2. 解决方案](#2. 解决方案)
  • [3. 服务保护技术对比](#3. 服务保护技术对比)
  • [4. 安装 Sentinel](#4. 安装 Sentinel)
    • [4.1 启动控制台](#4.1 启动控制台)
    • [4.2 客户端接入控制台](#4.2 客户端接入控制台)
  • 参考资料:

1. 雪崩问题

  • 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。
  • 动图演示:
    • 在微服务系统中,服务A依赖于服务B、服务D
    • 某一时刻服务D故障,导致依赖于服务D的服务A的请求也无法及时释放
    • 随着时间积累,服务A的tomcat连接数被故障的请求占满,导致服务A也不可用
    • 以此类推,导致微服务系统中此链路的所有服务都不可用
    • 看起来就和雪崩一样,从某一块雪滑落扩展到整个山坡。

2. 解决方案

  • 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待。
  • 舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。
  • 熔断降级:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。
  • 流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。

3. 服务保护技术对比

4. 安装 Sentinel

  • Sentinel是阿里巴巴开源的一款微服务流量控制组件。
  • 可以按照官方文档操作,都有详细步骤。
  • 官网地址(可能打不开...)

4.1 启动控制台

  1. 下载jar包
  2. 启动服务
    java -jar sentinel-dashboard-1.8.8.jar
  3. 登录控制台
    访问 http://localhost:8080 地址,
    用户名、密码 都是 sentinel

4.2 客户端接入控制台

  1. 引入依赖
xml 复制代码
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
  1. 配置修改
yaml 复制代码
    sentinel:
      transport:
        dashboard: localhost:8080
  1. 启动服务测试

访问接口,我这里有个test的接口

在浏览器调用后,再查看sentinel控制台,就可以看到

参考资料:

https://www.bilibili.com/video/BV1ou411a75C/?spm_id_from=333.337.search-card.all.click&vd_source=2ff628f5c812d7a3a5d93833fb99badf

相关推荐
文心快码BaiduComate3 小时前
Comate 4.0新年全面焕新!底层重构、七大升级、复杂任务驾驭力跃升
前端·程序员·架构
DevnullCoffe3 小时前
基于 OpenClaw + Pangolinfo API 的 Amazon 价格监控系统:架构设计与最佳实践
人工智能·架构
Mintopia4 小时前
在深与广之间:产品、架构与开发如何为业务场景做权衡
架构
ray_liang1 天前
用六边形架构与整洁架构对比是伪命题?
java·架构
Java编程爱好者1 天前
字节二面:被问“大模型知识过时了怎么解?”,我答“微调”,面试官当场黑脸:“听说过 RAG 吗?”
架构
葫芦的运维日志1 天前
从手动部署到GitOps只需四步
架构
sumuve1 天前
从100行到1行:我是如何重构IoT设备实时数据通信的?
架构·响应式设计
koddnty1 天前
c++协程控制流深入剖析
后端·架构
Mintopia1 天前
Vite 与 Uni-App X 的协作原理:从前端开发到多端运行的桥梁
架构
louiX2 天前
深入理解 Android BLE GATT 回调机制:从“回调地狱”到高可靠 OTA 架构
架构