aaa挂号项目
文章平均质量分 61
Java项目开发过程
丢丢diu丢
CSDN,做笔记用的……
展开
-
Redis+Mysql+MongoDB 解决高并发问题
1.请求进来先去Redis里加锁 Key:科室ID; Value:当前时间+过期时间 的毫秒数; public void orderProductMockDiffUser(String productId) { 加锁 锁的过期时间为当前时间+过期时长 long time = System.currentTimeMillis()+TIMEOUT; if(!redisLock.lock(productId,String.valueOf(time))){ thr原创 2021-09-10 12:03:19 · 406 阅读 · 0 评论 -
项目问题——Redis使用List防止商品超卖
1.首先定义名为科室名称department的List队列,里边的元素都是1,元素的个数代表号源的余量; 同时定义名为科室ID+User的Set,把已挂号的用户ID存入Set,保证同一个用户只能挂1个科室的1个号。 2.因为 Redis 是单线程的,所以可以将并发的请求串行化,而且 Redis的 List pop 操作是原子性 的。 3.所有请求打到 Redis 上,都是从 department队列上 pop 出一个元素。 public void testMiaosha(){ Object goods =原创 2021-09-08 17:26:03 · 458 阅读 · 0 评论 -
项目问题——数据异常的处理
1.先update,再select查询,如果号源数量小于0,就抛异常 1.自定义异常类,继承RuntimeException @Data @ApiModel(value = "自定义全局异常类") public class YyghException extends RuntimeException { @ApiModelProperty(value = "异常状态码") private Integer code; * 通过状态码和错误消息创建异常对象 * @pa原创 2021-09-08 15:17:41 · 158 阅读 · 0 评论 -
Sentinel—入门、高级、原理
4.4.流量控制的实现 Sentinel所有的规则都可以在内存态中动态的查询、修改,修改后立即生效。 0.主要支持的规则 流量控制的规则 熔断降级的规则 系统保护规则 来源访问控制规则 动态扩展规则 1.流量控制规则的实现 流量控制,原理是监控应用流量的QPS或者并发线程数等指标,当达到指定的阈值时,对流量进行控制,防止被高峰击垮,保障高可用。 1.1.流量控制的2种方式 并发线程数:用于保护业务线程数不被耗尽; QPS :当QPS超过阈值时,采取措施进行流量控制。 限流规则主要由下面几个因素组成,可原创 2021-08-27 14:50:18 · 82 阅读 · 0 评论