Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第326p-第p331的内容


关注的问题

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

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

sentinel(哨兵)

sentinel来实现熔断、降级、限流等操作
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(2)
腾讯开源的tendis,分布式缓存
第一辆车开太慢就会堵车

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(3)
有的解释,降级是提供错误的一个兜底反馈,跟这个解释好像不太一样

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

sentinel学习

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

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

五种方法 我们一般使用第四种注解方法 第一种适配方法 第二种抛异常方法
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(7)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(8)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(9)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(10)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(11)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(12)

步骤

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

  1. 引入sentinel包 谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(14)
    谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(15)
    控制台
    谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(16)
    查看调用的是哪个版本的sentinel
    谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(17)

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

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

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

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(20)
这个项目默认端口是8080 如果被占用的话 可以用 --server.port=你要的端口号
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(21)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(22)

步骤

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

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(24)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(25)

控制台操作方式

新增一个流控规则
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(26)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(27)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(28)
再次刷新 进行限流
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(29)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(30)

出现空指针异常 加一下判断即可
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(31)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(32)

只要加了依赖 就都会被监控
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(33)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(34)

暴露规则

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

全部暴露
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(36)

添加审计图

导入endpoint依赖就可以使用统计图
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(37)

exclude是排除哪些(不暴露)
include(暴露)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(38)

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

自定义流控返回

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(40)
新增一个配置类
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(41)

sentinel 提供的管理器类
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(42)

如果用spring5的webFlux编程就用下面的 这里我们用上面的
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(43)
定义一个错误码
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(44)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(45)
乱码了 我们定义一下编码就行
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(46)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(47)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(48)

全服务引入

每个服务都导入actuator 然后配置信息
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(49)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(50)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(51)

错误

循环依赖错误
这里是用构造注入的方式解决循环依赖
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(52)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(53)
解决:
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(54)

注掉@postConstruct (它的作用是 方法会在bean实例化后被立即调用。)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(55)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(56)
这里解决失败,还是报错,我们自己创建一个rabbitTemplate谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(57)
这里的@Primary注解的作用: 用于指示一个类、方法或字段作为首选的候选对象。当应用于类时,@Primary注解表示该类是首选的候选对象,将优先被实例化。当应用于方法时,@Primary注解表示该方法是最优选的候选方法,将优先被调用。当应用于字段时,@Primary注解表示该字段是最优选的候选字段,将优先被访问。

我们定义的rabbitTemplate比别人的少一些配置 如下
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(58)

还有一直解决方法

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


效果

走完流程后
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(59)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(60)

流控效果

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

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

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

warm up(热身)

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(64)
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(65)
峰值如果是500 我们使用 warm up(热身) :10秒内放进来500个请求
谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(66)

排队等待

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

谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(67)谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)插图(68)


本站无任何商业行为
个人在线分享 » 谷粒商城实战(033 业务-秒杀功能4-高并发问题解决方案sentinel 1)
E-->