Rocket MQ队列学习笔记

https://www.bilibili.com/video/BV1L4411y7mn?p=24 1.如何保证高可用 2.消息丢失怎么办,重复消费问题,消息顺序如何保证 3.消息一致性,A成功传给BCD D挂了,如何一致   1.基本消息例子 默认是负载均衡模式,还有一个广播模式 P24.张三:创建订单,扣减库存,付款订单,完成订单 Broker默认会把消息依次放入多个队列 消费者多线程的同时消费多个消 More


分库分表的方式和方案

https://www.bilibili.com/video/BV1jJ411M78w 四种方式 垂直分库,水平分库,垂直分表,水平分表 垂直分表:常用的一个表,不常用的一个表,例子:商品数据,名称价格一个表,详情说明另一个表 好处:避免IO争抢,比如修改商品描述行锁,减少锁表概念 2.充分发挥热门数据操作效率 为什么大字段IO效率低 数据量本身大,需要更长读取时间 跨页,页 More


红黑树插入旋转四种情况学习

完美测试地址 https://www.cs.usfca.edu/~galles/visualization/RedBlack.html 插入四种情况。默认新插入都是红色 1.Z是根节点 Z变色为黑色 2.Z的叔叔是红色 Z的父亲,祖父,叔叔 变色, 完美测试5,3,7,6 3.Z的叔叔是黑色,并局部呈现直线 3.1 旋转祖父,直线向右,向左旋,反过来向右 3.2 Z原来的父亲和祖父 More


MYSQL索引原理深入学习

1.索引的本质是什么 2.MYSQL为何多数用B+Tree,而不是其他 3. BTree的特点 4. B+Tree的特点 4.1 为何B+Tree叶子节点多了一个指针 4.2 为什么B+Tree上层节点不存储数据 5. 两种不同的索引分别存储文件什么样 6. Innodb索引实现原理 6.1 为什么innodb表必须有主键,并推荐【整型自增】 6.2 为什么非主键索引结构叶子节点存储的是主键 More


MQ消息队列三个典型应用场景

MQ消息队列三个典型的应用场景 1. 异步处理 使用前:注册--->发邮件--->发短信 如果连续处理,每个动作为50ms,那么一共花费150ms 使用后:注册--->MQ队列 MQ队列-->发邮件 (异步) MQ队列--->发短信 (异步) 用MQ队列服务缩短为55ms,注册50ms,写入MQ 5ms 2. 应用接耦 使用前:订单系统--->库存系统 下单后减去库存,订单系统会依赖库存 More


大型电商商品过亿流量详情页设计架构

1. 详情页的需求 1.多模板 2.商品详情页 a1.实效性低的数据 标题,图片,属性,商品介绍,规格参数 a2.时效性高的数据 价格,促销,库存,广告词 2. 访问特点 1.离散访问,热点数据少 2.活动时期流量暴增 商品设计思路图 触发路径 1. 商品管理员修改一个商品的详情 2. 商品服务把这个信息发送给MQ队列 3. 监听MQ队列的数据 More


redisson分布式锁原理学习笔记整理

整理完毕的笔记,收获很大 视频 https://www.bilibili.com/video/av667586995/ 提交订单 1. Redis里查库存-库存充足-扣减成功-更新库存 并发测试三单,从50变成49(其实为47),库存会超卖 2. synchroinzed(productID) 上锁 单机可以,多机器就拉倒了 synchroinzed JVM级别的锁 3. 分布式锁 锁标记productID,多方机器共享锁标记 More


Java中wait方法和sleep的不同之处

章节1:Java中wait方法和sleep的不同之处 区别1: a.wait来自Object方法 b.sleep来自Thread方法 区别2: a.sleep 让当前方法休眠1000毫秒,休眠后自动醒来,不一定要是锁对象 b.wait 传入毫秒参数,效果和sleep方法相似,但是比较麻烦,wait方法必须由锁对象调用 锁对象必须存放在同步当中 (不建议wait(1000) )建议wait() More


REDIS缓存穿透,缓存击穿,缓存雪崩

REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案 缓存穿透:程序绕过缓存,不停的查询数据库 key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 举例子:查询id=-1 这条数据库不 More


订单过期30分钟,不支付自动取消方案

订单过期30分钟,不支付自动取消方案 1. 扫描数据库 最简单,粗暴的办法。开个任务,每3分钟扫描一次数据库 select orderid from table where .... 服务器开启crontab 定时扫描 优点:容易实现,支持集群服务 缺点: 1. 服务器消耗大 2. 存在延迟,并不是精确的3分钟 3. 如果订单量很大,比如1000万条没有付款,数据库压力很大 2. JDK延迟 More