谷粒商城实战(033 业务-秒杀功能4-高并发题目解决方案sentinel 1) ...

王柳  金牌会员 | 2024-6-23 13:04:49 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 994|帖子 994|积分 2982

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强
总时长 104:45:00 共408P
此文章包含第326p-第p331的内容

关注的题目



sentinel(哨兵)

sentinel来实现熔断、降级、限流等操纵

腾讯开源的tendis,分布式缓存
第一辆车开太慢就会堵车

有的解释,降级是提供错误的一个兜底反馈,跟这个解释似乎不太一样

sentinel学习



五种方法 我们一样平常利用第四种注解方法 第一种适配方法 第二种抛非常方法






步调



  • 引入sentinel包


    控制台

    查察调用的是哪个版本的sentinel



这个jar包是个springboot项目 可以java -jar 直接启动

这个项目默认端口是8080 假如被占用的话 可以用 --server.port=你要的端标语


步调




控制台操纵方式

新增一个流控规则



再次刷新 进行限流


出现空指针非常 加一下判断即可


只要加了依赖 就都会被监控


暴露规则


全部暴露

添加审计图

导入endpoint依赖就可以利用统计图

exclude是扫除哪些(不暴露)
include(暴露)


自定义流控返回


新增一个配置类

sentinel 提供的管理器类

假如用spring5的webFlux编程就用下面的 这里我们用上面的

定义一个错误码


乱码了 我们定义一下编码就行



全服务引入

每个服务都导入actuator 然后配置信息



错误

循环依赖错误
这里是用构造注入的方式解决循环依赖


解决:

注掉@postConstruct (它的作用是 方法会在bean实例化后被立即调用。)


这里解决失败,还是报错,我们自己创建一个rabbitTemplate

这里的@Primary注解的作用: 用于指示一个类、方法或字段作为首选的候选对象。当应用于类时,@Primary注解表示该类是首选的候选对象,将优先被实例化。当应用于方法时,@Primary注解表示该方法是最优选的候选方法,将优先被调用。当应用于字段时,@Primary注解表示该字段是最优选的候选字段,将优先被访问。
我们定义的rabbitTemplate比别人的少一些配置 如下

另有一直解决方法

把@Bean注释的转换器和RabbitTemplate拆成两个文件,可以解决循环依赖

结果

走完流程后


流控结果




warm up(热身)



峰值假如是500 我们利用 warm up(热身) :10秒内放进来500个请求

排队等候

假如峰值时是500 进来700个请求 我们先将前500进行处理 然后剩下的200 等候我们设置的如3000毫秒 假如3000毫秒得不到处理 就抛出失败



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表