当前位置: 首页 > news >正文

sentinel的基本使用

在一些互联网项目中高并发的场景很多,瞬间流量很大,会导致我们服务不可用。

sentinel则可以保证我们服务的正常运行,提供限流、熔断、降级等方法来实现
 

一.限流:

        1.导入坐标

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

         2.配置

spring:cloud:sentinel:transport:port: 8179dashboard: 127.0.0.1:8333

        3.下在sentinel对应的版本服务并启动

        4.按照界面操作

 

 

二.熔断降级 

       开启熔断之后,实现远程调用的接口并实现方法(在方法内定义熔断之后的返回值),通过fallback指定实现类则完成简单服务的调用方熔断。

feign:sentinel:enabled: true   # 开启远程的熔断
@FeignClient(value = "product",fallback = ProductFeignBack.class)
public interface ProductFeignService {@GetMapping("/sentinelFeign")String sentinelFeign();
}@Slf4j
@Component
public class ProductFeignBack implements ProductFeignService {@Overridepublic String sentinelFeign() {log.info("被降级了....");return "error";}
}

三.网关限流

在前面的提到的限流是针对服务本身的限流,在sentinel里面也支持网关的限流,这样请求直接在网关就被拦截,不会到指定的服务才被拦截。

实现网关的限流也非常简单,导入坐标然后直接操作界面就行
 

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId></dependency>

 

四.链路追踪+zipkin界面展示

在前面的操作中不管是限流还是熔断降级,我们目的是为了保证在高并发的情况下服务能正常运行。

但是在实际的业务中我们一个功能的实现需要调用多个服务才能实现功能,那在服务调用的过程中我们怎样分析查看各个服务的执行时间或者是否成功,以便后期我们分析优化。链路追踪就很好的帮我们完成该统计。zipkin通过界面化的展示更加直观清晰

实现步骤:

 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId></dependency>
logging:level:org:springframework:cloud:openfeign: debugsleuth: debug

在通过导入坐标和配置之后,我们就可以通过日志的方式查看链路,但是实际的实际的生产环境中我们不可能根据日志查看链路。我们可以通过zipkin界面的方式查看。

zipkin的实现步骤: 

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId></dependency>
注意:导入zipkin坐标之后,sleuth坐标就可以不用导入了,因为里面包括了sleuth
spring:zipkin:base-url: http://192.168.127.129:9411discovery-client-enabled: false  # 关闭服务发现 佛欧泽cloud会把zipkin的url当服务名称sender:type: web  # 设置http的方式传输数据sleuth:sampler:probability: 1   # 设置抽样采集率和100%  默认10%

在导入坐标和配置之后,还需要下载并启动zipkin的服务,因为链路追踪可视化的数据来源于zipkin的服务,最终通过访问zipkin的服务就可以通过界面的方式查看到每一次访问的链路情况。

http://www.lryc.cn/news/134620.html

相关文章:

  • 【STM32】串口通信乱码(认识系统时钟来源)
  • Java实现敏感词过滤功能
  • 大数据向量检索的细节问题
  • 如何让智能搜索引擎更灵活、更高效?
  • C++set集合与并查集map映射,哈希表应用实例B3632 集合运算 1P1918 保龄球
  • easyexcel合并单元格底色
  • OpenCV图片校正
  • 数字孪生流域共建共享相关政策解读
  • FSC147数据集格式解析
  • el-element中el-tabs案例的使用
  • tomcat结构目录有哪些?
  • 生成式AI系列 —— DCGAN生成手写数字
  • vscode-vue项目格式化+语法检验-草稿
  • 【Java从0到1学习】10 Java常用类汇总
  • 第三届人工智能与智能制造国际研讨会(AIIM 2023)
  • 层次分析法
  • Error Handling
  • leetcode:字符串相乘(两种方法)
  • 【爬虫练习之glidedsky】爬虫-基础2
  • 03.有监督算法——决策树
  • 网络协议详解之STP
  • Eltima USB Network Gate 10.0 Crack
  • SpringCloudGateway网关实战(一)
  • django中使用ajax发送请求
  • C++之std::list<string>::iterator迭代器应用实例(一百七十九)
  • VSCode好用的插件
  • js实现滚轮滑动到底部自动加载(完整版)
  • 如何限制PDF打印?限制清晰度?
  • python计算模板图像与原图像各区域的相似度
  • 阿里云云解析DNS核心概念与应用