0
点赞
收藏
分享

微信扫一扫

秒杀场景_Sentinel在秒杀场景的应用_05


上一篇解决了在高并发秒杀场景下的超卖问题,这一篇主要解决如何利用Sentinel防止服务器雪崩。

文章目录

  • ​​一、 商品微服务集成Sentinel​​
  • ​​1. 引入依赖​​
  • ​​2. 添加配置​​
  • ​​二、 秒杀微服务集成Sentinel​​
  • ​​2.1. 引入依赖​​
  • ​​2.2. 添加配置​​
  • ​​三、 Sentinel流控规则​​
  • ​​3.1. 登录Sentinel​​
  • ​​3.2. 请求秒杀​​
  • ​​3.3. 配置秒杀流控01​​
  • ​​3.4. 单机阈值获取​​
  • ​​3.5. 配置秒杀流控02​​
一、 商品微服务集成Sentinel
1. 引入依赖

<!--流控组件sentinel-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

2. 添加配置

server:
port: 9000
spring:
cloud:
nacos:
discovery:
service: product-serv
server-addr: localhost:8848
sentinel:
transport:
dashboard: localhost:8888
datasource:
url: jdbc:mysql://localhost:3306/skill?characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: root
password: 123456
redis:
host: localhost
port: 6379

二、 秒杀微服务集成Sentinel
2.1. 引入依赖

<!--流控组件sentinel-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

2.2. 添加配置

server:
port: 13000
spring:
cloud:
nacos:
discovery:
service: skill-serv
server-addr: localhost:8848
sentinel:
transport:
dashboard: localhost:8888
datasource:
url: jdbc:mysql://localhost:3306/skill?characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: root
password: 123456
redis:
host: localhost
port: 6379

三、 Sentinel流控规则
3.1. 登录Sentinel

账号/密码:sentinel/sentinel

秒杀场景_Sentinel在秒杀场景的应用_05_流控

3.2. 请求秒杀

由于Sentinel 属于懒加载

​​http://localhost:13000/skill?productId=1&userId=1​​ 默认:不显示

秒杀场景_Sentinel在秒杀场景的应用_05_线程组_02


请求之后涉及的应用就会显示

秒杀场景_Sentinel在秒杀场景的应用_05_spring_03

3.3. 配置秒杀流控01

秒杀场景_Sentinel在秒杀场景的应用_05_流控_04


配置单机阈值

秒杀场景_Sentinel在秒杀场景的应用_05_流控_05

3.4. 单机阈值获取

单机阈值获取的方式可以借助工具​​jmeter​​​聚合报告中的异常比率来获取。
流程:
首先,请求秒杀微服务,设定并发数,如果不知奥秒杀服务能够承受多大的并发,可以先设置你觉得能够承受的并发数,10000,1000,500都可以,等会咱们会根据异常数,来调整秒杀服务真正能承受的并发数。
演示:第一轮先设置500

秒杀场景_Sentinel在秒杀场景的应用_05_spring_06


线程组名称为:秒杀线程组

线程数:500

Ramp-UP时间(秒):5

循环次数:1释义:5秒之内启动500个线程数,简言之,模拟500个用户并发请求

秒杀场景_Sentinel在秒杀场景的应用_05_流控_07


添加http请求:

秒杀场景_Sentinel在秒杀场景的应用_05_spring_08

http
127.0.0.1
13000
/skill?productId=1&userId=1

秒杀场景_Sentinel在秒杀场景的应用_05_微服务_09


添加聚合报告

秒杀场景_Sentinel在秒杀场景的应用_05_spring_10


并发压测,依次类推,知道异常比率你能接受的范围,并发数就设置多少。

秒杀场景_Sentinel在秒杀场景的应用_05_线程组_11

3.5. 配置秒杀流控02

比如,我能接受的异常比例是0.002%,对应的并发数是500,那我设置单机阈值就是500,查过这个阈值,我这里暂时处理为直接失败,根据企业实际情况,设置失败策略

秒杀场景_Sentinel在秒杀场景的应用_05_线程组_12


秒杀场景_Sentinel在秒杀场景的应用_05_微服务_13


举报

相关推荐

0 条评论